diff --git a/app/src/main/assets/sample/画布/贪吃蛇美化版.js b/app/src/main/assets/sample/画布/贪吃蛇美化版.js
deleted file mode 100644
index 0210fe5e..00000000
--- a/app/src/main/assets/sample/画布/贪吃蛇美化版.js
+++ /dev/null
@@ -1,188 +0,0 @@
-"ui";
-
-ui.layout(
-
-
-
-
-
-
-
-
-
-);
-
-//蛇的颜色
-const SNAKE_COLOR = colors.parseColor("#9EDBB0");
-//背景色
-const BG_COLOR = colors.parseColor("#ffffff");
-//苹果颜色
-const APPLE_COLOR = colors.parseColor("#f44336");
-//墙的颜色
-const WALL_COLOR = colors.parseColor("#607d8b");
-//文本颜色
-const TEXT_COLOR = colors.parseColor("#03a9f4");
-//蛇头图片
-const SNAKE_HEAD = images.fromBase64("iVBORw0KGgoAAAANSUhEUgAAADIAAAArCAYAAAA65tviAAAACXBIWXMAAAsTAAALEwEAmpwYAAA57GlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMwNjcgNzkuMTU3NzQ3LCAyMDE1LzAzLzMwLTIzOjQwOjQyICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNSAoV2luZG93cyk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMTgtMDMtMjNUMjE6MTU6NTErMDg6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wMy0yM1QyMToyMDo1MiswODowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6TWV0YWRhdGFEYXRlPjIwMTgtMDMtMjNUMjE6MjA6NTIrMDg6MDA8L3htcDpNZXRhZGF0YURhdGU+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6YjkyNzMyZjMtMzg4ZC00YzQxLTlhMWMtMDI4NTFhNGYxZDQ0PC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD5hZG9iZTpkb2NpZDpwaG90b3Nob3A6ZmE5OWVkOTEtMmU5Yy0xMWU4LTk1NjYtOGU4M2FkZTA3NzBhPC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6NjEwYmQ3YzYtMzc5Ni03YTQ0LThkMmUtNGVjMmU4YjczN2Q0PC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjYxMGJkN2M2LTM3OTYtN2E0NC04ZDJlLTRlYzJlOGI3MzdkNDwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxOC0wMy0yM1QyMToxNTo1MSswODowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDpiOTI3MzJmMy0zODhkLTRjNDEtOWExYy0wMjg1MWE0ZjFkNDQ8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTgtMDMtMjNUMjE6MjA6NTIrMDg6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOllSZXNvbHV0aW9uPjcyMDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT42NTUzNTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+NDM8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PrhmdoQAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAD/ZJREFUeNrUmHmUW2d5xt9JcBIcAqmBADkNFBKaktLD0jYcWkhJG4ID5BgcYuoCpYdCEgi4LCFNoAmuIWDHxk6I7ZGurpbxOjOS7iJpPItmXzT7otF67/ddaUazSbNIs2hsx4799I87Hs8EwmGLoX88Z6SrI833+973/b73eQkAAaDY6fQvqXc2QaGJIRooaNQzE6O+mSjVZDpJ5c3UPtb/N1K07j5vtO5Tdazj7nBBv6kx3UXJs5mSHJaoKdRGW+/ZTG962ya64Y2vox/s+DZtuede2ndgH+WKBRqbTtD4TIzGcv00W+ygkbkg5fJdlCt00vh8A80Xh2h+6ZVVWB6is2mDLjb10uRPniP6jUDmdRrIa9SdDVNtputGdyJ4Y4C37DwZPeU5majxysmG47UjoW9W6603xpfSV0+hYIJ8/L4/LZDwAqf+ucQ17ljtp48lqwdtMSVdmlBg4QpKmYzDSRnWsHTB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");
-
-//蛇自动移动的时间间隔,调小可以增加难度
-const MOVE_INTERVAL = 500;
-//方块宽度
-const BLOCK_WIDTH = 40;
-//游戏区域宽高
-const GAME_BORAD_HEIGHT = 20;
-const GAME_BORAD_WIDTH = 15;
-
-//蛇的四个移动方向
-const DIRECTION_LFET = {x: -1, y: 0};
-const DIRECTION_RIGHT = {x: 1, y: 0};
-const DIRECTION_UP = {x: 0, y: -1};
-const DIRECTION_DOWN = {x: 0, y: 1};
-
-//蛇,是一个蛇身的坐标的数组
-var snake = [{x: 4, y: 2}, {x: 3, y: 2}, {x: 2, y: 2}];
-//苹果的坐标
-var apple = generateApple();
-//当前蛇的移动方向
-var direction = DIRECTION_RIGHT;
-//标记游戏是否结束
-var isGameOver = false;
-//分数
-var score = 0;
-
-var paint = new Paint();
-ui.board.on("draw", function(canvas){
- //绘制背景色
- canvas.drawColor(BG_COLOR);
- //绘制分数
- paint.setColor(TEXT_COLOR);
- paint.setTextSize(50);
- canvas.drawText("分数: " + score, 30, 70, paint);
- //如果游戏结束则绘制游戏结束字样
- if(isGameOver){
- canvas.drawText("游戏结束!", canvas.getWidth() - 280, 70, paint);
- }
- //计算坐标偏移,是的游戏区域绘制在画面的水平居中位置
- var offset = {
- x: (canvas.getWidth() - (GAME_BORAD_WIDTH + 2) * BLOCK_WIDTH) / 2,
- y: 100
- };
- //偏移坐标
- canvas.translate(offset.x, offset.y);
- //绘制围墙
- paint.setColor(WALL_COLOR);
- for(var i = 0; i <= GAME_BORAD_WIDTH + 1; i++){
- //上围墙
- drawBlock(canvas, paint, i, 0);
- //下围墙
- drawBlock(canvas, paint, i, GAME_BORAD_HEIGHT + 1);
- }
- for(var i = 0; i <= GAME_BORAD_HEIGHT + 1; i++){
- //左围墙
- drawBlock(canvas, paint, 0, i);
- //右围墙
- drawBlock(canvas, paint, GAME_BORAD_WIDTH + 1, i);
- }
- //绘制蛇头
- canvas.drawImage(SNAKE_HEAD, x * BLOCK_WIDTH, y * BLOCK_WIDTH, paint);
- //绘制蛇身
- paint.setColor(SNAKE_COLOR);
- for(var i = 1; i < snake.length; i++){
- drawBlock(canvas, paint, snake[i].x, snake[i].y);
- }
- //绘制苹果
- paint.setColor(APPLE_COLOR);
- drawBlock(canvas, paint, apple.x, apple.y);
-});
-
-//启动游戏线程
-var gameThread = threads.start(game);
-
-//按键点击时改变蛇的移动方向
-ui.left.on("click", ()=> direction = DIRECTION_LFET);
-ui.right.on("click", ()=> direction = DIRECTION_RIGHT);
-ui.up.on("click", ()=> direction = DIRECTION_UP);
-ui.down.on("click", ()=> direction = DIRECTION_DOWN);
-
-
-function game(){
- //每隔一段时间让蛇自动前进
- setInterval(()=>{
- move(direction.x, direction.y);
- }, MOVE_INTERVAL);
-}
-
-function move(dx, dy){
- log("move: %d, %d", dx, dy);
- direction.x = dx;
- direction.y = dy;
- //蛇前进时把一个新的方块添加到蛇头前面
- var head = snake[0];
- snake.splice(0, 0, {
- x: head.x + dx,
- y: head.y + dy
- });
- //如果蛇头吃到了苹果
- if(snakeEatsApple()){
- //添加分数和重新生成苹果
- score += 5;
- apple = generateApple();
- }else{
- //没有吃到苹果的情况下把蛇尾去掉保持蛇身长度不变
- snake.pop();
- }
- //碰撞检测
- collisionTest();
-}
-
-function snakeEatsApple(){
- return snake[0].x == apple.x && snake[0].y == apple.y;
-}
-
-function generateApple(){
- //循环生成苹果直至苹果不会生成在蛇身上
- var x, y;
- do{
- x = random(1, GAME_BORAD_WIDTH);
- y = random(1, GAME_BORAD_HEIGHT);
- }while(!isAppleValid(x, y));
- log("generateApple: ", {x: x, y: y});
- return {x: x, y: y};
-}
-
-function isAppleValid(x, y){
- for (var i = 0; i < snake.length; i++) {
- if (snake[i].x == x && snake[i].y == y) {
- return false;
- }
- }
- return true;
-}
-
-function collisionTest(){
- //检测蛇有没有撞到墙上
- var head = snake[0];
- if(head.x < 1 || head.x > GAME_BORAD_WIDTH
- || head.y < 1 || head.y > GAME_BORAD_HEIGHT){
- gameOver();
- return;
- }
- //检测蛇有没有撞到自己
- for(var i = 1; i < snake.length; i++){
- if(snake[i].x == head && snake[i].y == head){
- gameOver();
- return;
- }
- }
-}
-
-function gameOver(){
- gameThread.interrupt();
- isGameOver = true;
-}
-
-function drawBlock(canvas, paint, x, y){
- x *= BLOCK_WIDTH;
- y *= BLOCK_WIDTH;
- canvas.drawRect(x, y, x + BLOCK_WIDTH, y + BLOCK_WIDTH, paint);
-}
\ No newline at end of file
diff --git a/app/src/main/assets/sample/画布/贪吃蛇重力感应版.js b/app/src/main/assets/sample/画布/贪吃蛇重力感应版.js
new file mode 100644
index 00000000..fa530bd4
--- /dev/null
+++ b/app/src/main/assets/sample/画布/贪吃蛇重力感应版.js
@@ -0,0 +1,231 @@
+"ui";
+
+ui.layout(
+
+
+
+);
+
+//蛇的颜色
+const SNAKE_COLOR = colors.parseColor("#9EDBB0");
+//背景色
+const BG_COLOR = colors.parseColor("#ffffff");
+//文本颜色
+const TEXT_COLOR = colors.parseColor("#03a9f4");
+//蛇头图片
+const SNAKE_HEAD = images.fromBase64("iVBORw0KGgoAAAANSUhEUgAAADAAAAArCAYAAAA+EwvfAAAACXBIWXMAAAsTAAALEwEAmpwYAAA7pmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMwNjcgNzkuMTU3NzQ3LCAyMDE1LzAzLzMwLTIzOjQwOjQyICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNSAoV2luZG93cyk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMTgtMDMtMjNUMjE6MTU6NTErMDg6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wMy0yM1QyMTo0ODoyMiswODowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6TWV0YWRhdGFEYXRlPjIwMTgtMDMtMjNUMjE6NDg6MjIrMDg6MDA8L3htcDpNZXRhZGF0YURhdGU+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6M2UyZTBkZGUtOWY3Zi1hNTQ0LTk1NmQtN2MyMDEzNmJjOWRlPC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD5hZG9iZTpkb2NpZDpwaG90b3Nob3A6ZmE5OWVkOTEtMmU5Yy0xMWU4LTk1NjYtOGU4M2FkZTA3NzBhPC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6NjEwYmQ3YzYtMzc5Ni03YTQ0LThkMmUtNGVjMmU4YjczN2Q0PC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjYxMGJkN2M2LTM3OTYtN2E0NC04ZDJlLTRlYzJlOGI3MzdkNDwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxOC0wMy0yM1QyMToxNTo1MSswODowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDpiOTI3MzJmMy0zODhkLTRjNDEtOWExYy0wMjg1MWE0ZjFkNDQ8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTgtMDMtMjNUMjE6MjA6NTIrMDg6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6M2UyZTBkZGUtOWY3Zi1hNTQ0LTk1NmQtN2MyMDEzNmJjOWRlPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE4LTAzLTIzVDIxOjQ4OjIyKzA4OjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOlhSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpZUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WVJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDxleGlmOkNvbG9yU3BhY2U+NjU1MzU8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjQ4PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjQzPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg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");
+//苹果图片
+const APPLE = images.fromBase64("iVBORw0KGgoAAAANSUhEUgAAAC0AAAArCAYAAADsQwGHAAAACXBIWXMAAC4jAAAuIwF4pT92AAA/YmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMwNjcgNzkuMTU3NzQ3LCAyMDE1LzAzLzMwLTIzOjQwOjQyICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPmFkb2JlOmRvY2lkOnBob3Rvc2hvcDo1NjA1MGFhZS0yZWExLTExZTgtODY3ZC1iMDQ3Y2JkZjZmZjg8L3htcE1NOkRvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6YTNmMzk5MjctZWJhYS0wYTRiLWJiMGUtZmQwNDk1ODRiYTRlPC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPjlGNkI0QTAxN0E2RDg3M0I3RUE3MUU1MUFCNkYzMTk2PC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo3ZGE4N2U3Yi1kZWE0LTBkNGQtODhkYy0wNjY5MDI1ZWU1OGE8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTgtMDMtMjNUMjE6NTE6NTcrMDg6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNvbnZlcnRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6cGFyYW1ldGVycz5mcm9tIGltYWdlL2pwZWcgdG8gaW1hZ2UvcG5nPC9zdEV2dDpwYXJhbWV0ZXJzPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+ZGVyaXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6cGFyYW1ldGVycz5jb252ZXJ0ZWQgZnJvbSBpbWFnZS9qcGVnIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6YTNmMzk5MjctZWJhYS0wYTRiLWJiMGUtZmQwNDk1ODRiYTRlPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE4LTAzLTIzVDIxOjUxOjU3KzA4OjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHhtcE1NOkRlcml2ZWRGcm9tIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgPHN0UmVmOmluc3RhbmNlSUQ+eG1wLmlpZDo3ZGE4N2U3Yi1kZWE0LTBkNGQtODhkYy0wNjY5MDI1ZWU1OGE8L3N0UmVmOmluc3RhbmNlSUQ+CiAgICAgICAgICAgIDxzdFJlZjpkb2N1bWVudElEPjlGNkI0QTAxN0E2RDg3M0I3RUE3MUU1MUFCNkYzMTk2PC9zdFJlZjpkb2N1bWVudElEPgogICAgICAgICAgICA8c3RSZWY6b3JpZ2luYWxEb2N1bWVudElEPjlGNkI0QTAxN0E2RDg3M0I3RUE3MUU1MUFCNkYzMTk2PC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE4LTAzLTIzVDIxOjUwOjQ2KzA4OjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTgtMDMtMjNUMjE6NTE6NTcrMDg6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDE4LTAzLTIzVDIxOjUxOjU3KzA4OjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8dGlmZjpJbWFnZVdpZHRoPjEwMjQ8L3RpZmY6SW1hZ2VXaWR0aD4KICAgICAgICAgPHRpZmY6SW1hZ2VMZW5ndGg+OTc0PC90aWZmOkltYWdlTGVuZ3RoPgogICAgICAgICA8dGlmZjpCaXRzUGVyU2FtcGxlPgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaT44PC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGk+ODwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpPjg8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L3RpZmY6Qml0c1BlclNhbXBsZT4KICAgICAgICAgPHRpZmY6UGhvdG9tZXRyaWNJbnRlcnByZXRhdGlvbj4yPC90aWZmOlBob3RvbWV0cmljSW50ZXJwcmV0YXRpb24+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlNhbXBsZXNQZXJQaXhlbD4zPC90aWZmOlNhbXBsZXNQZXJQaXhlbD4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+MzAwMDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MzAwMDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6RXhpZlZlcnNpb24+MDIyMTwvZXhpZjpFeGlmVmVyc2lvbj4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT42NTUzNTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NDU8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+NDM8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/Pq2UBOQAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAC1pJREFUeNrMmXuMHdV9xz/nzPO+9n33rne96+f6tYYGY55xQrBNYqsqBhxUFZqoFJGGtkJpiNqocluoWiAiRCRNiVSVVg0IqGhIIIEopIEQhwKJnfUL7LXXj71r7+7d530/Zuac0z/W2EGA5KQq7Ff6STMjjfQ5v/nO7/x+M+KXg/v4dbmex9z0NGPHT5KsQ3h6lrDT56Sd/51ch9o01qEuqti6f9qudVetKIUQXlPkZNujWLZ/zPvO6lP+E32JDv2RLZfxVO7Itkeyr911XUv/C7tWfvybkYBAK4zReKkmtIo4vud/CAt5RK2BbGlGR4owUESmhozHWLTmYloHVoIUGKUBsIUQ74BGChwkHVWL07HK0v++pPS54aXFHWMtel3J1URC4zYMnh3HUyBURE5GHQdFfsNLveqGnozade9I4tPtFXno6eLIbUej7PYeu9dPWdY3zwQVIgxuUxNz0xPkjw2hjcKyXTQNLlR2Ipl8x4WUn0Dnq8l/7jr18EtrarfXEy7Jakii6pBoxLC0pBGPoYWDZRTGtUkhaNIR2pJk+6dX/0NfYU/P7OzyI5XCBiu1lEeWXLO9hkFZAieepDI2zsSru8EWuEv60PWA30T2j55//p2JjgxezI25va7v1+q6mkI60sNGQL0MqoRXkwgctOMQxpMYS6KFjVAOSxvNnG4x3l/lf/HsTGV25S19Gx7qU25jsDqFE08QHRuifPAgOoqItbZhjOE3lbWoK0NuYvxcHD05TMxyqjeLNc+sO6a/nlC4b3WUrsq1ObhuBh1vRRgNJkJEVZxqERkWsatFrHoerQo0BwWGKrluU2nm/vZLtqNUo2RBODdL6cB+LASW7yNsC2IxTCPABAHC9zHaoJVBEyEch1RHhlhnGwgBZxdoi19bqDEG23JQrsOZeEAijBdue7P57vWn3ce+s3723jf6c9f7NNHmd+PXNZoGbqVMZAu8UhktwVaamgip5CMuczt/uNJNFsc8MCNZ5OwkTiqFqAdoQHoeJhHHBApTr8+DXYg9dnz2D85bw3YoT45jJqdJ26A7ElQc2FTr27fpcPeO14eH7/p+b3bX3iWx9OlFXcRqBrstTawSIZuSBNJQNlW2Tad+SaXkLba8g3VjaBQKiKGjOG3NqPZ2KJaRlQqiVEpKo1O6XAtNGE7rVAYlLMxMHurV94e+evO1572CQ2niOBMv76YU97GkS/fwsWvaRkd+v+XE6SuuyBbFHaoce3WZzSuXZTgy0Em2u5m6Jcrl9vSBtlBO95+0Xvv8bPcDf+eNPbG4M31EVCvEG1VK3T0IEREfyX7MO/TmTic/93FRKi8TKkpqaaJIOhNhOj0YdPc8W+1f/aRKdwSyUT9niXdAz85Mnz9xXQr5ApPJFC0z+YFlP3/jwea9e7fLeAzWDVDZtpVE33Kum61z3Z791B/Zx4ybpZiKRYV0/qhOtX+v2e98dqavSj4Ztq0qhIPyzLBn1YoXt53JfcI9eezG+NTUVabSQHkWWlhoo5FC23ZYW2qNTyx1f7X3Rr9r8d/PbVh/T3jNpn8nlQStQNrnOMXQ9Nj8kTbIphRTpRn8x5++bdWTz/ybY1moW2/B3XkTVlcXAMGhQzT27CE8fBh95Dh2FOJGYDUC6rZGx+PhRNIbu/PqJcm/3juWu2iq2FGqVzqtah1lCVTMJ5IOxkQYZTBGY4RGKdBGYEyELFQI83NUrr78sZZduz7buW4AVZ4B5j1vW7YEDMJyqHopMt997ouLH3n0IX3lFYh77yG2bBkA1cceo/bCC4QnT6ERWC3N6ESKhudSiTQ64aBQxGqBE5aCJZ2FCm2TM+2qUsfEPULHQ6POJei9ZcAYVFMTxDz8l1/5TEM46ejb/7rdTiZRc3mQEvHmicNgNI2eHpp+9vMblv75l74bbdqE8+i/IBEEu3dTefhholNZyKQRySa0ALRGadBSgzIYBAqF0RAIQ96RtNQihNYYYdCKc9BKCwzqPTINRkcYY6GMwmAIDh3B+/wffav1nr/5U5UdxWiNGBzcS9jSgjUz07b6S3857TqusJ57Dul71J/+LyoPfhXR0oxId6JVhNEaPV8f3wWtUWgNUiuSQUjRsggAfhtoHWGkQFcaBGMj+A/cf62/ectP1UgW6fgOVjJG3ws/fDSWzQruvw/pewQv/YTqA19BLu5BZtKg1PzjuwApIci7NkoIBP8HGQO+j/R9oqf+89tW0MBrb0HWmlqJHTy8tvn7z98Q7bwJ59JL0bkctfsewOruRiQScLa7+lCkNXJRF9H+g73VH798k+7oRDbKJVpffe3LTrWKvP12AOrf+CdoNBCtraA/ROBzNU4gLEn4091fNMUa0hvJOqm9e3aqj27CXr0GffQo0Ss/Qy7pO2uJBSBjsNo7iI4e+WhlcE9GNuemNsdGRhLm2k8AED7+BMJxwLJZUPJ9zPQ04eG3ttmJycmPSdtGbNmCaTRQe/cgFnVhFoIt3uVvAxO5jdIZH1tLVxci3UH0xuuYYgFsh4Uo4XroyfHV0pmc6qOne34h+/cjPA/xWzTmHwh03MfMFRZJt1Lu0Wf7CpMdgUSCBSvXg2o1LWUjaDHJJKZexxSK4LoLlllYFiYMUhIhDMZgqlXQGiEEC1sCqX1/TpRK8zXZtlmgdp63r1II1ynIsLVtVI6PQ6Tmt+yFWOrehq7VEKmmnGx0tJ9g9DSmWkV0ZSAIFm6qazVoax2RtY6Og0xNwtQUomcx1OsL1cqYMMDu6T0gKyuW/ThyXBgZQTQ3QxQtTGilIRbHWrb8J7Lau3RvrX/VGWvf4PzWnUyyEN9FUy4huntmopX9r8hGU5ziho88zq8GMbMziN5eUAss20Ji5vL4l1/6VHLtCqRtQqYvWf/1hlbI0TOIdBrqjYXFHDTQqST6yo1fM0EN6Y7nqWYWj89t3Pikc+QtjBSwkPYXy4KJScxVl/+gtGzJienDQ0h8C8sSjG//5F/Uq3XskSwkUxc8D/5/TyyUSkSxGPFbb/2zdFcX7Yu6kaI5jmsa1C+9KJfbtnWXc+LkBX8I/CCgg9EssT+89Ssdm6/NJitVmpqakLZrYzs2yUqJ6U9f/48z69Yc8LOjGPvDnVyEbROdOom7YeNw25/c8WU5PYdEYgmJdJ04rpvAqxv8VCtTd3/hk/XWlsDNTWIs60PzsRofRyeTZL7x0NZkJoNVD/BiCVwvjhSOj3B8hB/HmymgVqzKjd591zXaaLx8ASPlBwssJWJuDh2EtD741S3+wMBIfXQc7dgoKVBSILUu8HYoU8SZHEJdveH1U1+481NRIyBWKM5XlA8I2JrLE5YrxO/72x3p3/3US2JkGDuqYoeVcyGFLTkXjgVSEC/PkF+/5sXBm6+/uuZ708mZPMIYzIW+oMbMj2wX2ucKARjsXA4VixXzd3xms7ly43PW7ASGCCwD8nxIzNnq9nYgMNoQn5qh0Nv92oGdNw5MLF/2A39uDr9Uni/h7wUvBDIMcQtF7EoFGYXYlQpOPo9sBO97jxBgFQpYuSlqa9e8OPu5Px6I1qx6WZwZR0cKhDz7ifd8vG+JMEB8dg6Vapl8c+vm31u0csUtmQP7dsUnptbaUYSKxdCOhwDseh1Ra1BrSgT5iwaermY6X2zUginXddu9qcmt8RPDNzvTM3EV81C+Nz991OtQKKEFRH3dQ8UNl99funj9f9hEOJMz0N76vqVXDE0efVcLaLkuxRNjzA4dxzOSUBlUTwZ7LEfz8VM7mgtzN3pTU5eIcnWplkaHrj9cXpT50dyK5d8KFnWfQWvC0XGc7i5wXWLVQsb9xeCd3skT261Go18pY6mEP6LS6X2Vts7vRRevfUb39hCcGsFWAWGkyaxeQfea1US1+rt+2/3vAL2ds78IdI8OAAAAAElFTkSuQmCC");
+//围墙方块图片
+const WALL_BLOCK = images.fromBase64("iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAA4JGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMwNjcgNzkuMTU3NzQ3LCAyMDE1LzAzLzMwLTIzOjQwOjQyICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNSAoV2luZG93cyk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMTgtMDMtMjNUMjE6NTc6MTArMDg6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wMy0yM1QyMTo1Nzo1OCswODowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6TWV0YWRhdGFEYXRlPjIwMTgtMDMtMjNUMjE6NTc6NTgrMDg6MDA8L3htcDpNZXRhZGF0YURhdGU+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6MDI2NmYzMzQtZTgyYy05OTQ2LThiNjItYzdlZTc2MjJmMmQyPC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD54bXAuZGlkOjAyNjZmMzM0LWU4MmMtOTk0Ni04YjYyLWM3ZWU3NjIyZjJkMjwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjAyNjZmMzM0LWU4MmMtOTk0Ni04YjYyLWM3ZWU3NjIyZjJkMjwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDowMjY2ZjMzNC1lODJjLTk5NDYtOGI2Mi1jN2VlNzYyMmYyZDI8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTgtMDMtMjNUMjE6NTc6MTArMDg6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOllSZXNvbHV0aW9uPjcyMDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT42NTUzNTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NDA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+NDA8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg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");
+
+//蛇自动移动的时间间隔,调小可以增加难度
+const MOVE_INTERVAL = 500;
+//方块宽度
+const BLOCK_WIDTH = 40;
+//游戏区域宽高
+const GAME_BORAD_HEIGHT = 20;
+const GAME_BORAD_WIDTH = 15;
+
+//蛇的四个移动方向
+const DIRECTION_LEFT = {x: -1, y: 0, angle: 180};
+const DIRECTION_RIGHT = {x: 1, y: 0, angle: 0};
+const DIRECTION_UP = {x: 0, y: -1, angle:270};
+const DIRECTION_DOWN = {x: 0, y: 1, angle: 90};
+
+//蛇,是一个蛇身的坐标的数组
+var snake = [{x: 4, y: 2}, {x: 3, y: 2}, {x: 2, y: 2}];
+//苹果的坐标
+var apple = generateApple();
+//当前蛇的移动方向
+var direction = DIRECTION_RIGHT;
+//标记游戏是否结束
+var isGameOver = false;
+//分数
+var score = 0;
+//难度
+var level = 5;
+
+var gameThread = null;
+
+dialogs.input("请输入难度(1~10)", level)
+ .then(function(l){
+ level = Math.max(1, Math.min(10, l));
+ MOVE_INTERVAL = 1000 - level * 100;
+ //启动游戏线程
+ gameThread = threads.start(game);
+ toast("通过重力感应来改变蛇的移动方向");
+ });
+
+function game(){
+ //每隔一段时间让蛇自动前进
+ setInterval(()=>{
+ move(direction.x, direction.y);
+ }, MOVE_INTERVAL);
+}
+
+function move(dx, dy){
+ log("move: %d, %d", dx, dy);
+ direction.x = dx;
+ direction.y = dy;
+ //蛇前进时把一个新的方块添加到蛇头前面
+ var head = snake[0];
+ snake.splice(0, 0, {
+ x: head.x + dx,
+ y: head.y + dy
+ });
+ //如果蛇头吃到了苹果
+ if(snakeEatsApple()){
+ //添加分数和重新生成苹果
+ score += 5;
+ apple = generateApple();
+ }else{
+ //没有吃到苹果的情况下把蛇尾去掉保持蛇身长度不变
+ snake.pop();
+ }
+ //碰撞检测
+ collisionTest();
+}
+
+function snakeEatsApple(){
+ return snake[0].x == apple.x && snake[0].y == apple.y;
+}
+
+function generateApple(){
+ //循环生成苹果直至苹果不会生成在蛇身上
+ var x, y;
+ do{
+ x = random(1, GAME_BORAD_WIDTH);
+ y = random(1, GAME_BORAD_HEIGHT);
+ }while(!isAppleValid(x, y));
+ log("generateApple: ", {x: x, y: y});
+ return {x: x, y: y};
+}
+
+function isAppleValid(x, y){
+ for (var i = 0; i < snake.length; i++) {
+ if (snake[i].x == x && snake[i].y == y) {
+ return false;
+ }
+ }
+ return true;
+}
+
+function collisionTest(){
+ //检测蛇有没有撞到墙上
+ var head = snake[0];
+ if(head.x < 1 || head.x > GAME_BORAD_WIDTH
+ || head.y < 1 || head.y > GAME_BORAD_HEIGHT){
+ gameOver();
+ return;
+ }
+ //检测蛇有没有撞到自己
+ for(var i = 1; i < snake.length; i++){
+ if(equals(snake[i], head)){
+ gameOver();
+ return;
+ }
+ }
+}
+
+function gameOver(){
+ gameThread.interrupt();
+ isGameOver = true;
+}
+
+//监听重力传感器实现重力改变蛇的移动方向
+sensors.register("gravity", sensors.delay.game)
+ .on("change", function(event, gx, gy, gz){
+ if(Math.abs(gx) > Math.abs(gy) && Math.abs(gx) > 1.8){
+ setDirection(gx > 0 ? DIRECTION_LEFT : DIRECTION_RIGHT);
+ }
+ if(Math.abs(gy) > Math.abs(gx) && Math.abs(gy) > 1.8){
+ setDirection(gy > 0 ? DIRECTION_DOWN: DIRECTION_UP);
+ }
+ });
+
+function setDirection(d){
+ if(equals(d, DIRECTION_LEFT) && equals(direction, DIRECTION_RIGHT))
+ return;
+ if(equals(d, DIRECTION_RIGHT) && equals(direction, DIRECTION_LEFT))
+ return;
+ if(equals(d, DIRECTION_DOWN) && equals(direction, DIRECTION_UP))
+ return;
+ if(equals(d, DIRECTION_UP) && equals(direction, DIRECTION_DOWN))
+ return;
+ direction = d;
+}
+
+var paint = new Paint();
+ui.board.on("draw", function(canvas){
+ //绘制背景色
+ canvas.drawColor(BG_COLOR);
+ //绘制分数等信息
+ paint.setColor(TEXT_COLOR);
+ paint.setTextSize(50);
+ canvas.drawText("分数: " + score, 30, 70, paint);
+ canvas.drawText("难度: " + level, 400, 70, paint);
+ //如果游戏结束则绘制游戏结束字样
+ if(isGameOver){
+ canvas.drawText("游戏结束!", canvas.getWidth() - 280, 70, paint);
+ }
+ //计算坐标偏移,是的游戏区域绘制在画面的水平居中位置
+ var offset = {
+ x: (canvas.getWidth() - (GAME_BORAD_WIDTH + 2) * BLOCK_WIDTH) / 2,
+ y: 100
+ };
+ //偏移坐标
+ canvas.translate(offset.x, offset.y);
+ //绘制围墙
+ drawWall(canvas, paint);
+ //绘制蛇头
+ drawSnakeHead(canvas, paint);
+ //绘制蛇身
+ drawSnakeBody(canvas, paint);
+ //绘制苹果
+ canvas.drawImage(APPLE, apple.x * BLOCK_WIDTH, apple.y * BLOCK_WIDTH, paint);
+});
+
+function drawWall(canvas, paint){
+ for(var i = 0; i <= GAME_BORAD_WIDTH + 1; i++){
+ //上围墙
+ drawBlock(canvas, paint, i, 0);
+ //下围墙
+ drawBlock(canvas, paint, i, GAME_BORAD_HEIGHT + 1);
+ }
+ for(var i = 0; i <= GAME_BORAD_HEIGHT + 1; i++){
+ //左围墙
+ drawBlock(canvas, paint, 0, i);
+ //右围墙
+ drawBlock(canvas, paint, GAME_BORAD_WIDTH + 1, i);
+ }
+}
+
+function drawBlock(canvas, paint, x, y){
+ x *= BLOCK_WIDTH;
+ y *= BLOCK_WIDTH;
+ canvas.drawImage(WALL_BLOCK, x, y, paint);
+}
+
+function drawSnakeHead(canvas, paint){
+ var x = snake[0].x * BLOCK_WIDTH;
+ var y = snake[0].y * BLOCK_WIDTH;
+ var matrix = new android.graphics.Matrix();
+ matrix.postRotate(direction.angle, SNAKE_HEAD.getWidth() / 2, SNAKE_HEAD.getHeight() / 2);
+ matrix.postTranslate(x, y);
+ canvas.drawImage(SNAKE_HEAD, matrix, paint);
+}
+
+
+function drawSnakeBody(canvas, paint){
+ paint.setColor(SNAKE_COLOR);
+ for(var i = 1; i < snake.length; i++){
+ var x = snake[i].x * BLOCK_WIDTH;
+ var y = snake[i].y * BLOCK_WIDTH;
+ canvas.drawCircle(x + BLOCK_WIDTH / 2, y + BLOCK_WIDTH / 2, BLOCK_WIDTH / 2, paint);
+ }
+}
+
+function equals(point1, point2){
+ return point1.x == point2.x && point1.y == point2.y;
+}
\ No newline at end of file
diff --git a/autojs/src/main/java/com/stardust/autojs/core/image/ImageWrapper.java b/autojs/src/main/java/com/stardust/autojs/core/image/ImageWrapper.java
index 856baf99..6751b38a 100644
--- a/autojs/src/main/java/com/stardust/autojs/core/image/ImageWrapper.java
+++ b/autojs/src/main/java/com/stardust/autojs/core/image/ImageWrapper.java
@@ -10,6 +10,7 @@ import android.graphics.Xfermode;
import android.media.Image;
import android.os.Build;
import android.support.annotation.RequiresApi;
+import android.view.KeyEvent;
import com.stardust.autojs.runtime.api.Images;
import com.stardust.pio.UncheckedIOException;
diff --git a/autojs/src/main/java/com/stardust/autojs/core/ui/widget/JsImageView.java b/autojs/src/main/java/com/stardust/autojs/core/ui/widget/JsImageView.java
index d6bcd8db..f37dcedf 100644
--- a/autojs/src/main/java/com/stardust/autojs/core/ui/widget/JsImageView.java
+++ b/autojs/src/main/java/com/stardust/autojs/core/ui/widget/JsImageView.java
@@ -5,6 +5,7 @@ import android.util.AttributeSet;
import com.makeramen.roundedimageview.RoundedImageView;
+import com.stardust.autojs.core.image.ImageWrapper;
import com.stardust.autojs.core.ui.inflater.util.Drawables;
/**
@@ -43,6 +44,10 @@ public class JsImageView extends RoundedImageView {
getDrawables().setupWithImage(this, uri);
}
+ public void setSource(ImageWrapper image) {
+ setImageBitmap(image.getBitmap());
+ }
+
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_add_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_add_black_48dp.png
new file mode 100644
index 00000000..1e1e4d60
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_add_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_add_box_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_add_box_black_48dp.png
new file mode 100644
index 00000000..f1468772
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_add_box_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_add_box_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_add_box_white_48dp.png
new file mode 100644
index 00000000..8a9c1936
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_add_box_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_add_circle_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_add_circle_black_48dp.png
new file mode 100644
index 00000000..2b52255b
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_add_circle_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_add_circle_outline_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_add_circle_outline_black_48dp.png
new file mode 100644
index 00000000..428a1099
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_add_circle_outline_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_add_circle_outline_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_add_circle_outline_white_48dp.png
new file mode 100644
index 00000000..cebba168
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_add_circle_outline_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_add_circle_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_add_circle_white_48dp.png
new file mode 100644
index 00000000..7332c757
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_add_circle_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_add_to_photos_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_add_to_photos_white_48dp.png
new file mode 100644
index 00000000..0d754771
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_add_to_photos_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_add_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_add_white_48dp.png
new file mode 100644
index 00000000..165c907d
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_add_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_adjust_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_adjust_black_48dp.png
new file mode 100644
index 00000000..8c8a95b9
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_adjust_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_alarm_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_alarm_white_48dp.png
new file mode 100644
index 00000000..aa8102fd
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_alarm_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_archive_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_archive_black_48dp.png
new file mode 100644
index 00000000..abdadd0d
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_archive_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_archive_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_archive_white_48dp.png
new file mode 100644
index 00000000..b8e5966d
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_archive_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_assignment_return_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_assignment_return_black_48dp.png
new file mode 100644
index 00000000..87af129a
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_assignment_return_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_assignment_return_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_assignment_return_white_48dp.png
new file mode 100644
index 00000000..f13fd1b3
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_assignment_return_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_assignment_returned_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_assignment_returned_black_48dp.png
new file mode 100644
index 00000000..f02e2469
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_assignment_returned_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_assignment_returned_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_assignment_returned_white_48dp.png
new file mode 100644
index 00000000..e9b9f135
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_assignment_returned_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_assignment_turned_in_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_assignment_turned_in_black_48dp.png
new file mode 100644
index 00000000..88991d23
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_assignment_turned_in_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_assignment_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_assignment_white_48dp.png
new file mode 100644
index 00000000..3a4a04be
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_assignment_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_assistant_photo_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_assistant_photo_white_48dp.png
new file mode 100644
index 00000000..136cc786
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_assistant_photo_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_audiotrack_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_audiotrack_white_48dp.png
new file mode 100644
index 00000000..884c426c
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_audiotrack_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_autorenew_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_autorenew_black_48dp.png
new file mode 100644
index 00000000..217fe381
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_autorenew_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_autorenew_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_autorenew_white_48dp.png
new file mode 100644
index 00000000..abc5ad7c
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_autorenew_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_backspace_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_backspace_black_48dp.png
new file mode 100644
index 00000000..6347f110
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_backspace_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_backspace_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_backspace_white_48dp.png
new file mode 100644
index 00000000..c6ce06e6
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_backspace_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_backup_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_backup_black_48dp.png
new file mode 100644
index 00000000..81155da5
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_backup_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_backup_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_backup_white_48dp.png
new file mode 100644
index 00000000..a9602d11
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_backup_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_block_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_block_black_48dp.png
new file mode 100644
index 00000000..1168bd8d
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_block_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_block_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_block_white_48dp.png
new file mode 100644
index 00000000..b45705bd
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_block_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_blur_linear_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_blur_linear_black_48dp.png
new file mode 100644
index 00000000..f0be0897
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_blur_linear_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_blur_on_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_blur_on_black_48dp.png
new file mode 100644
index 00000000..040d6055
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_blur_on_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_blur_on_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_blur_on_white_48dp.png
new file mode 100644
index 00000000..db3b4e54
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_blur_on_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_book_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_book_black_48dp.png
new file mode 100644
index 00000000..00f29d33
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_book_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_brightness_3_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_brightness_3_white_48dp.png
new file mode 100644
index 00000000..dfca40bc
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_brightness_3_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_brightness_5_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_brightness_5_white_48dp.png
new file mode 100644
index 00000000..8b2155c2
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_brightness_5_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_brightness_7_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_brightness_7_black_48dp.png
new file mode 100644
index 00000000..f0c6d8bd
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_brightness_7_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_broken_image_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_broken_image_black_48dp.png
new file mode 100644
index 00000000..46c90ac8
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_broken_image_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_broken_image_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_broken_image_white_48dp.png
new file mode 100644
index 00000000..19ce1bfe
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_broken_image_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_brush_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_brush_black_48dp.png
new file mode 100644
index 00000000..58e5d18e
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_brush_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_burst_mode_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_burst_mode_black_48dp.png
new file mode 100644
index 00000000..7c21bc5a
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_burst_mode_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_burst_mode_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_burst_mode_white_48dp.png
new file mode 100644
index 00000000..bf58c0aa
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_burst_mode_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_camera_alt_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_camera_alt_white_48dp.png
new file mode 100644
index 00000000..f2fe54bd
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_camera_alt_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_camera_enhance_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_camera_enhance_black_48dp.png
new file mode 100644
index 00000000..86715b1b
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_camera_enhance_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_camera_enhance_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_camera_enhance_white_48dp.png
new file mode 100644
index 00000000..2ca5c8e3
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_camera_enhance_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_camera_front_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_camera_front_white_48dp.png
new file mode 100644
index 00000000..9f43e207
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_camera_front_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_camera_roll_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_camera_roll_black_48dp.png
new file mode 100644
index 00000000..784fe6a2
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_camera_roll_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_card_giftcard_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_card_giftcard_black_48dp.png
new file mode 100644
index 00000000..0a80dadf
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_card_giftcard_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_card_giftcard_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_card_giftcard_white_48dp.png
new file mode 100644
index 00000000..828c349d
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_card_giftcard_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_card_membership_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_card_membership_black_48dp.png
new file mode 100644
index 00000000..a56f343f
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_card_membership_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_card_membership_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_card_membership_white_48dp.png
new file mode 100644
index 00000000..26cede56
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_card_membership_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_card_travel_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_card_travel_black_48dp.png
new file mode 100644
index 00000000..17e8ba65
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_card_travel_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_card_travel_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_card_travel_white_48dp.png
new file mode 100644
index 00000000..cb355efa
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_card_travel_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_center_focus_weak_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_center_focus_weak_white_48dp.png
new file mode 100644
index 00000000..720c8051
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_center_focus_weak_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_change_history_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_change_history_black_48dp.png
new file mode 100644
index 00000000..9c5d661f
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_change_history_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_class_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_class_white_48dp.png
new file mode 100644
index 00000000..059b0e65
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_class_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_clear_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_clear_black_48dp.png
new file mode 100644
index 00000000..8c6f57c2
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_clear_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_clear_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_clear_white_48dp.png
new file mode 100644
index 00000000..bb21ce03
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_clear_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_code_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_code_black_48dp.png
new file mode 100644
index 00000000..ac084e61
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_code_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_collections_bookmark_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_collections_bookmark_white_48dp.png
new file mode 100644
index 00000000..e32d5f2e
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_collections_bookmark_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_colorize_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_colorize_black_48dp.png
new file mode 100644
index 00000000..08144f34
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_colorize_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_compare_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_compare_white_48dp.png
new file mode 100644
index 00000000..d073aab8
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_compare_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_content_copy_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_content_copy_black_48dp.png
new file mode 100644
index 00000000..2236d331
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_content_copy_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_content_copy_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_content_copy_white_48dp.png
new file mode 100644
index 00000000..31d04998
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_content_copy_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_content_cut_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_content_cut_black_48dp.png
new file mode 100644
index 00000000..1a13fa65
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_content_cut_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_content_cut_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_content_cut_white_48dp.png
new file mode 100644
index 00000000..ace8e627
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_content_cut_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_content_paste_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_content_paste_black_48dp.png
new file mode 100644
index 00000000..6e39e2d7
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_content_paste_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_content_paste_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_content_paste_white_48dp.png
new file mode 100644
index 00000000..7753cf43
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_content_paste_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_copyright_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_copyright_white_48dp.png
new file mode 100644
index 00000000..561fe2a5
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_copyright_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_create_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_create_black_48dp.png
new file mode 100644
index 00000000..a09d3627
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_create_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_create_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_create_white_48dp.png
new file mode 100644
index 00000000..bde8b21c
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_create_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_credit_card_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_credit_card_black_48dp.png
new file mode 100644
index 00000000..83a970f2
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_credit_card_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_credit_card_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_credit_card_white_48dp.png
new file mode 100644
index 00000000..bdbda8cd
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_credit_card_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_crop_16_9_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_crop_16_9_white_48dp.png
new file mode 100644
index 00000000..10cb953d
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_crop_16_9_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_crop_7_5_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_crop_7_5_white_48dp.png
new file mode 100644
index 00000000..a8e529d8
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_crop_7_5_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_crop_din_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_crop_din_white_48dp.png
new file mode 100644
index 00000000..7e7a0b00
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_crop_din_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_crop_landscape_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_crop_landscape_black_48dp.png
new file mode 100644
index 00000000..c06977e4
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_crop_landscape_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_crop_portrait_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_crop_portrait_black_48dp.png
new file mode 100644
index 00000000..c17e8bf4
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_crop_portrait_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_crop_square_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_crop_square_white_48dp.png
new file mode 100644
index 00000000..d540f1b8
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_crop_square_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_dashboard_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_dashboard_black_48dp.png
new file mode 100644
index 00000000..8fad114f
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_dashboard_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_dashboard_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_dashboard_white_48dp.png
new file mode 100644
index 00000000..817f274c
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_dashboard_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_date_range_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_date_range_black_48dp.png
new file mode 100644
index 00000000..bfa9a0ab
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_date_range_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_date_range_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_date_range_white_48dp.png
new file mode 100644
index 00000000..1fc8ed38
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_date_range_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_dehaze_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_dehaze_white_48dp.png
new file mode 100644
index 00000000..3ccbff3f
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_dehaze_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_delete_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_delete_black_48dp.png
new file mode 100644
index 00000000..f2b75c31
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_delete_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_delete_sweep_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_delete_sweep_black_48dp.png
new file mode 100644
index 00000000..8317c494
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_delete_sweep_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_delete_sweep_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_delete_sweep_white_48dp.png
new file mode 100644
index 00000000..e580e71a
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_delete_sweep_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_donut_small_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_donut_small_white_48dp.png
new file mode 100644
index 00000000..cab8d40d
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_donut_small_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_drafts_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_drafts_black_48dp.png
new file mode 100644
index 00000000..71a2bf39
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_drafts_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_drafts_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_drafts_white_48dp.png
new file mode 100644
index 00000000..29211202
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_drafts_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_edit_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_edit_black_48dp.png
new file mode 100644
index 00000000..9160023a
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_edit_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_event_seat_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_event_seat_white_48dp.png
new file mode 100644
index 00000000..6398147a
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_event_seat_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_exit_to_app_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_exit_to_app_white_48dp.png
new file mode 100644
index 00000000..8402f9f3
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_exit_to_app_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_exposure_neg_1_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_exposure_neg_1_black_48dp.png
new file mode 100644
index 00000000..4326078b
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_exposure_neg_1_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_exposure_neg_1_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_exposure_neg_1_white_48dp.png
new file mode 100644
index 00000000..05136bea
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_exposure_neg_1_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_exposure_neg_2_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_exposure_neg_2_white_48dp.png
new file mode 100644
index 00000000..5464fc36
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_exposure_neg_2_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_exposure_plus_1_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_exposure_plus_1_black_48dp.png
new file mode 100644
index 00000000..4ee826c7
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_exposure_plus_1_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_exposure_plus_2_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_exposure_plus_2_white_48dp.png
new file mode 100644
index 00000000..f4031868
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_exposure_plus_2_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_exposure_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_exposure_white_48dp.png
new file mode 100644
index 00000000..29656a27
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_exposure_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_exposure_zero_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_exposure_zero_black_48dp.png
new file mode 100644
index 00000000..979bf9b3
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_exposure_zero_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_favorite_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_favorite_black_48dp.png
new file mode 100644
index 00000000..b46fa0a6
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_favorite_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_favorite_border_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_favorite_border_black_48dp.png
new file mode 100644
index 00000000..96e0b9e7
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_favorite_border_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_favorite_border_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_favorite_border_white_48dp.png
new file mode 100644
index 00000000..8450a32d
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_favorite_border_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_filter_1_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_filter_1_black_48dp.png
new file mode 100644
index 00000000..ef8dfdbf
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_filter_1_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_filter_1_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_filter_1_white_48dp.png
new file mode 100644
index 00000000..f106d0b9
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_filter_1_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_filter_3_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_filter_3_black_48dp.png
new file mode 100644
index 00000000..bf8d827e
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_filter_3_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_filter_3_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_filter_3_white_48dp.png
new file mode 100644
index 00000000..6fbc7107
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_filter_3_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_filter_4_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_filter_4_white_48dp.png
new file mode 100644
index 00000000..f577eabd
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_filter_4_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_filter_6_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_filter_6_black_48dp.png
new file mode 100644
index 00000000..31dc3e79
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_filter_6_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_filter_6_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_filter_6_white_48dp.png
new file mode 100644
index 00000000..c2a95b8b
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_filter_6_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_filter_7_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_filter_7_white_48dp.png
new file mode 100644
index 00000000..35337060
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_filter_7_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_filter_8_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_filter_8_black_48dp.png
new file mode 100644
index 00000000..aa79444a
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_filter_8_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_filter_9_plus_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_filter_9_plus_black_48dp.png
new file mode 100644
index 00000000..28de69da
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_filter_9_plus_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_filter_b_and_w_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_filter_b_and_w_black_48dp.png
new file mode 100644
index 00000000..2d43e195
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_filter_b_and_w_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_filter_center_focus_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_filter_center_focus_white_48dp.png
new file mode 100644
index 00000000..a10eeb94
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_filter_center_focus_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_filter_list_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_filter_list_black_48dp.png
new file mode 100644
index 00000000..76183304
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_filter_list_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_filter_list_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_filter_list_white_48dp.png
new file mode 100644
index 00000000..f1317151
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_filter_list_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_flag_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_flag_black_48dp.png
new file mode 100644
index 00000000..b4d32273
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_flag_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_flag_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_flag_white_48dp.png
new file mode 100644
index 00000000..a4ec5a2a
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_flag_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_flash_off_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_flash_off_black_48dp.png
new file mode 100644
index 00000000..dd055bd2
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_flash_off_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_flip_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_flip_black_48dp.png
new file mode 100644
index 00000000..df8269c8
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_flip_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_font_download_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_font_download_black_48dp.png
new file mode 100644
index 00000000..d86f20d8
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_font_download_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_font_download_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_font_download_white_48dp.png
new file mode 100644
index 00000000..f9e8f60f
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_font_download_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_forward_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_forward_black_48dp.png
new file mode 100644
index 00000000..63ce5d59
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_forward_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_forward_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_forward_white_48dp.png
new file mode 100644
index 00000000..73aced5c
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_forward_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_gesture_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_gesture_black_48dp.png
new file mode 100644
index 00000000..bcb5ada3
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_gesture_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_gesture_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_gesture_white_48dp.png
new file mode 100644
index 00000000..1ae500fa
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_gesture_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_grain_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_grain_black_48dp.png
new file mode 100644
index 00000000..63430bc1
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_grain_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_grid_off_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_grid_off_white_48dp.png
new file mode 100644
index 00000000..8005c52d
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_grid_off_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_grid_on_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_grid_on_black_48dp.png
new file mode 100644
index 00000000..6d573548
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_grid_on_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_hdr_off_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_hdr_off_white_48dp.png
new file mode 100644
index 00000000..717314e8
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_hdr_off_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_hdr_strong_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_hdr_strong_black_48dp.png
new file mode 100644
index 00000000..3e8eb31e
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_hdr_strong_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_hdr_strong_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_hdr_strong_white_48dp.png
new file mode 100644
index 00000000..caacbf27
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_hdr_strong_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_healing_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_healing_black_48dp.png
new file mode 100644
index 00000000..600bda17
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_healing_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_history_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_history_black_48dp.png
new file mode 100644
index 00000000..87b15baa
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_history_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_history_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_history_white_48dp.png
new file mode 100644
index 00000000..5af97d00
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_history_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_home_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_home_black_48dp.png
new file mode 100644
index 00000000..d66401cc
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_home_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_home_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_home_white_48dp.png
new file mode 100644
index 00000000..356814b9
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_home_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_http_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_http_black_48dp.png
new file mode 100644
index 00000000..bb219934
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_http_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_image_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_image_black_48dp.png
new file mode 100644
index 00000000..ebe206ff
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_image_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_important_devices_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_important_devices_black_48dp.png
new file mode 100644
index 00000000..4a52f0fe
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_important_devices_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_important_devices_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_important_devices_white_48dp.png
new file mode 100644
index 00000000..03772250
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_important_devices_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_inbox_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_inbox_black_48dp.png
new file mode 100644
index 00000000..7eba3fd4
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_inbox_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_inbox_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_inbox_white_48dp.png
new file mode 100644
index 00000000..99f9ebe6
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_inbox_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_input_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_input_white_48dp.png
new file mode 100644
index 00000000..3b22d00f
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_input_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_invert_colors_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_invert_colors_black_48dp.png
new file mode 100644
index 00000000..0e2d30be
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_invert_colors_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_invert_colors_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_invert_colors_white_48dp.png
new file mode 100644
index 00000000..b1cf071e
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_invert_colors_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_landscape_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_landscape_black_48dp.png
new file mode 100644
index 00000000..892dd4a1
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_landscape_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_language_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_language_black_48dp.png
new file mode 100644
index 00000000..68608c70
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_language_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_language_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_language_white_48dp.png
new file mode 100644
index 00000000..a576ac7a
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_language_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_launch_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_launch_black_48dp.png
new file mode 100644
index 00000000..4305f566
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_launch_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_leak_remove_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_leak_remove_black_48dp.png
new file mode 100644
index 00000000..deb76684
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_leak_remove_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_line_style_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_line_style_black_48dp.png
new file mode 100644
index 00000000..1421d5c4
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_line_style_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_line_style_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_line_style_white_48dp.png
new file mode 100644
index 00000000..45ec0105
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_line_style_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_link_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_link_black_48dp.png
new file mode 100644
index 00000000..fc2a7f5f
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_link_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_link_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_link_white_48dp.png
new file mode 100644
index 00000000..3724eae9
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_link_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_linked_camera_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_linked_camera_white_48dp.png
new file mode 100644
index 00000000..68c5ebe8
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_linked_camera_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_lock_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_lock_black_48dp.png
new file mode 100644
index 00000000..3ca279f8
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_lock_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_looks_4_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_looks_4_black_48dp.png
new file mode 100644
index 00000000..b1132190
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_looks_4_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_looks_5_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_looks_5_black_48dp.png
new file mode 100644
index 00000000..4d2db949
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_looks_5_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_looks_6_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_looks_6_white_48dp.png
new file mode 100644
index 00000000..6af6af4b
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_looks_6_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_looks_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_looks_black_48dp.png
new file mode 100644
index 00000000..7805056d
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_looks_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_looks_one_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_looks_one_black_48dp.png
new file mode 100644
index 00000000..101a7770
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_looks_one_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_looks_one_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_looks_one_white_48dp.png
new file mode 100644
index 00000000..974f4d6b
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_looks_one_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_looks_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_looks_white_48dp.png
new file mode 100644
index 00000000..eeef2a10
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_looks_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_loupe_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_loupe_black_48dp.png
new file mode 100644
index 00000000..6e2c3832
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_loupe_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_low_priority_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_low_priority_black_48dp.png
new file mode 100644
index 00000000..ea005ede
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_low_priority_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_low_priority_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_low_priority_white_48dp.png
new file mode 100644
index 00000000..89d7abf9
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_low_priority_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_mail_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_mail_black_48dp.png
new file mode 100644
index 00000000..d7751caf
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_mail_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_mail_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_mail_white_48dp.png
new file mode 100644
index 00000000..feac5c5f
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_mail_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_markunread_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_markunread_black_48dp.png
new file mode 100644
index 00000000..99072801
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_markunread_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_markunread_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_markunread_white_48dp.png
new file mode 100644
index 00000000..feac5c5f
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_markunread_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_monochrome_photos_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_monochrome_photos_white_48dp.png
new file mode 100644
index 00000000..117fd568
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_monochrome_photos_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_move_to_inbox_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_move_to_inbox_black_48dp.png
new file mode 100644
index 00000000..19d190fc
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_move_to_inbox_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_move_to_inbox_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_move_to_inbox_white_48dp.png
new file mode 100644
index 00000000..34731b84
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_move_to_inbox_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_movie_creation_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_movie_creation_white_48dp.png
new file mode 100644
index 00000000..03bca67a
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_movie_creation_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_movie_filter_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_movie_filter_white_48dp.png
new file mode 100644
index 00000000..9f99e134
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_movie_filter_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_music_note_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_music_note_black_48dp.png
new file mode 100644
index 00000000..be167f1d
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_music_note_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_nature_people_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_nature_people_black_48dp.png
new file mode 100644
index 00000000..8635ce55
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_nature_people_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_nature_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_nature_white_48dp.png
new file mode 100644
index 00000000..0f5819a1
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_nature_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_navigate_before_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_navigate_before_white_48dp.png
new file mode 100644
index 00000000..42a4e219
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_navigate_before_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_navigate_next_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_navigate_next_black_48dp.png
new file mode 100644
index 00000000..7522b384
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_navigate_next_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_navigate_next_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_navigate_next_white_48dp.png
new file mode 100644
index 00000000..6858f02b
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_navigate_next_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_next_week_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_next_week_black_48dp.png
new file mode 100644
index 00000000..099ccb33
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_next_week_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_next_week_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_next_week_white_48dp.png
new file mode 100644
index 00000000..5f55b525
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_next_week_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_palette_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_palette_black_48dp.png
new file mode 100644
index 00000000..96e053b9
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_palette_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_pan_tool_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_pan_tool_white_48dp.png
new file mode 100644
index 00000000..05893ecc
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_pan_tool_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_panorama_fish_eye_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_panorama_fish_eye_white_48dp.png
new file mode 100644
index 00000000..3e6816a4
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_panorama_fish_eye_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_panorama_vertical_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_panorama_vertical_black_48dp.png
new file mode 100644
index 00000000..529c6373
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_panorama_vertical_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_panorama_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_panorama_white_48dp.png
new file mode 100644
index 00000000..e859efa0
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_panorama_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_panorama_wide_angle_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_panorama_wide_angle_black_48dp.png
new file mode 100644
index 00000000..e5678bae
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_panorama_wide_angle_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_perm_device_information_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_perm_device_information_white_48dp.png
new file mode 100644
index 00000000..3c658c86
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_perm_device_information_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_perm_identity_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_perm_identity_black_48dp.png
new file mode 100644
index 00000000..7a95c119
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_perm_identity_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_perm_identity_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_perm_identity_white_48dp.png
new file mode 100644
index 00000000..e344ea99
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_perm_identity_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_perm_media_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_perm_media_black_48dp.png
new file mode 100644
index 00000000..5ec7d71f
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_perm_media_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_perm_media_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_perm_media_white_48dp.png
new file mode 100644
index 00000000..62e33a03
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_perm_media_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_perm_phone_msg_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_perm_phone_msg_black_48dp.png
new file mode 100644
index 00000000..fe9f4296
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_perm_phone_msg_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_perm_phone_msg_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_perm_phone_msg_white_48dp.png
new file mode 100644
index 00000000..40eed1d1
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_perm_phone_msg_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_perm_scan_wifi_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_perm_scan_wifi_black_48dp.png
new file mode 100644
index 00000000..51210e98
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_perm_scan_wifi_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_photo_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_photo_black_48dp.png
new file mode 100644
index 00000000..ebe206ff
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_photo_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_photo_camera_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_photo_camera_black_48dp.png
new file mode 100644
index 00000000..6df33edd
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_photo_camera_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_photo_filter_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_photo_filter_black_48dp.png
new file mode 100644
index 00000000..4f42fab4
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_photo_filter_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_photo_size_select_large_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_photo_size_select_large_black_48dp.png
new file mode 100644
index 00000000..e1868f28
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_photo_size_select_large_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_photo_size_select_small_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_photo_size_select_small_white_48dp.png
new file mode 100644
index 00000000..967f138c
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_photo_size_select_small_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_polymer_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_polymer_white_48dp.png
new file mode 100644
index 00000000..e768175e
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_polymer_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_portrait_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_portrait_white_48dp.png
new file mode 100644
index 00000000..3ae69b5c
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_portrait_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_power_settings_new_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_power_settings_new_black_48dp.png
new file mode 100644
index 00000000..e9825fb7
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_power_settings_new_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_receipt_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_receipt_black_48dp.png
new file mode 100644
index 00000000..c7bc3f42
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_receipt_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_receipt_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_receipt_white_48dp.png
new file mode 100644
index 00000000..070762bf
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_receipt_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_record_voice_over_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_record_voice_over_black_48dp.png
new file mode 100644
index 00000000..6c9134bb
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_record_voice_over_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_redeem_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_redeem_white_48dp.png
new file mode 100644
index 00000000..562bcc6a
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_redeem_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_redo_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_redo_black_48dp.png
new file mode 100644
index 00000000..a8ab30c4
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_redo_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_redo_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_redo_white_48dp.png
new file mode 100644
index 00000000..84063010
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_redo_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_remove_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_remove_black_48dp.png
new file mode 100644
index 00000000..e10d935f
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_remove_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_remove_circle_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_remove_circle_black_48dp.png
new file mode 100644
index 00000000..6ed7b99f
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_remove_circle_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_remove_circle_outline_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_remove_circle_outline_black_48dp.png
new file mode 100644
index 00000000..a02b5e11
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_remove_circle_outline_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_remove_circle_outline_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_remove_circle_outline_white_48dp.png
new file mode 100644
index 00000000..efbebb51
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_remove_circle_outline_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_remove_circle_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_remove_circle_white_48dp.png
new file mode 100644
index 00000000..5e6f4fdc
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_remove_circle_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_remove_shopping_cart_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_remove_shopping_cart_black_48dp.png
new file mode 100644
index 00000000..93a4be90
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_remove_shopping_cart_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_remove_shopping_cart_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_remove_shopping_cart_white_48dp.png
new file mode 100644
index 00000000..5f8a9f6d
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_remove_shopping_cart_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_remove_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_remove_white_48dp.png
new file mode 100644
index 00000000..f775c5e7
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_remove_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_reorder_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_reorder_black_48dp.png
new file mode 100644
index 00000000..0a66529b
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_reorder_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_reorder_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_reorder_white_48dp.png
new file mode 100644
index 00000000..a0d2543f
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_reorder_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_reply_all_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_reply_all_black_48dp.png
new file mode 100644
index 00000000..91c3132b
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_reply_all_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_reply_all_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_reply_all_white_48dp.png
new file mode 100644
index 00000000..2a641287
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_reply_all_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_reply_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_reply_black_48dp.png
new file mode 100644
index 00000000..5d91d883
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_reply_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_reply_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_reply_white_48dp.png
new file mode 100644
index 00000000..cd21e924
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_reply_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_report_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_report_black_48dp.png
new file mode 100644
index 00000000..92319b7e
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_report_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_report_problem_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_report_problem_black_48dp.png
new file mode 100644
index 00000000..3f4d539a
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_report_problem_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_report_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_report_white_48dp.png
new file mode 100644
index 00000000..aa1ebca0
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_report_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_restore_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_restore_white_48dp.png
new file mode 100644
index 00000000..8008fa64
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_restore_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_room_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_room_black_48dp.png
new file mode 100644
index 00000000..5a21dfae
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_room_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_room_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_room_white_48dp.png
new file mode 100644
index 00000000..8bcb6f62
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_room_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_rotate_90_degrees_ccw_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_rotate_90_degrees_ccw_white_48dp.png
new file mode 100644
index 00000000..adfd6457
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_rotate_90_degrees_ccw_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_rotate_right_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_rotate_right_white_48dp.png
new file mode 100644
index 00000000..13e03d53
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_rotate_right_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_rounded_corner_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_rounded_corner_black_48dp.png
new file mode 100644
index 00000000..55d70188
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_rounded_corner_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_save_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_save_black_48dp.png
new file mode 100644
index 00000000..ecdaa50c
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_save_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_save_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_save_white_48dp.png
new file mode 100644
index 00000000..4243804c
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_save_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_select_all_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_select_all_black_48dp.png
new file mode 100644
index 00000000..9d83369f
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_select_all_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_select_all_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_select_all_white_48dp.png
new file mode 100644
index 00000000..fe9a1d9b
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_select_all_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_send_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_send_black_48dp.png
new file mode 100644
index 00000000..f2d6ba95
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_send_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_send_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_send_white_48dp.png
new file mode 100644
index 00000000..14b90dd3
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_send_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_settings_ethernet_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_settings_ethernet_white_48dp.png
new file mode 100644
index 00000000..ab57308c
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_settings_ethernet_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_settings_input_antenna_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_settings_input_antenna_black_48dp.png
new file mode 100644
index 00000000..605e7b92
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_settings_input_antenna_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_settings_input_hdmi_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_settings_input_hdmi_black_48dp.png
new file mode 100644
index 00000000..7db1a93c
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_settings_input_hdmi_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_settings_input_hdmi_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_settings_input_hdmi_white_48dp.png
new file mode 100644
index 00000000..17e54080
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_settings_input_hdmi_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_settings_power_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_settings_power_black_48dp.png
new file mode 100644
index 00000000..0af4f565
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_settings_power_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_settings_power_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_settings_power_white_48dp.png
new file mode 100644
index 00000000..db90e482
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_settings_power_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_shop_two_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_shop_two_black_48dp.png
new file mode 100644
index 00000000..dd09ce3b
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_shop_two_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_shop_two_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_shop_two_white_48dp.png
new file mode 100644
index 00000000..2d0248bc
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_shop_two_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_slideshow_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_slideshow_white_48dp.png
new file mode 100644
index 00000000..3447818a
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_slideshow_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_sort_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_sort_black_48dp.png
new file mode 100644
index 00000000..df250a8a
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_sort_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_sort_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_sort_white_48dp.png
new file mode 100644
index 00000000..dd04823e
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_sort_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_speaker_notes_off_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_speaker_notes_off_black_48dp.png
new file mode 100644
index 00000000..d84f1e7c
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_speaker_notes_off_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_star_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_star_black_48dp.png
new file mode 100644
index 00000000..918a3956
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_star_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_star_border_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_star_border_black_48dp.png
new file mode 100644
index 00000000..ca0f0f9b
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_star_border_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_star_border_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_star_border_white_48dp.png
new file mode 100644
index 00000000..0bae0bde
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_star_border_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_star_half_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_star_half_black_48dp.png
new file mode 100644
index 00000000..98731ad8
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_star_half_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_star_half_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_star_half_white_48dp.png
new file mode 100644
index 00000000..05215667
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_star_half_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_star_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_star_white_48dp.png
new file mode 100644
index 00000000..58d71b39
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_star_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_straighten_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_straighten_black_48dp.png
new file mode 100644
index 00000000..6146dbee
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_straighten_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_style_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_style_white_48dp.png
new file mode 100644
index 00000000..4074e3a1
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_style_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_subject_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_subject_black_48dp.png
new file mode 100644
index 00000000..730a415f
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_subject_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_subject_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_subject_white_48dp.png
new file mode 100644
index 00000000..2c041de6
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_subject_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_supervisor_account_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_supervisor_account_black_48dp.png
new file mode 100644
index 00000000..f5c49f93
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_supervisor_account_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_supervisor_account_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_supervisor_account_white_48dp.png
new file mode 100644
index 00000000..8ce10b96
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_supervisor_account_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_switch_camera_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_switch_camera_black_48dp.png
new file mode 100644
index 00000000..e88bbea8
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_switch_camera_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_tab_unselected_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_tab_unselected_white_48dp.png
new file mode 100644
index 00000000..f7315007
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_tab_unselected_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_tag_faces_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_tag_faces_black_48dp.png
new file mode 100644
index 00000000..0b7d14a8
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_tag_faces_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_tag_faces_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_tag_faces_white_48dp.png
new file mode 100644
index 00000000..319a13a3
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_tag_faces_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_text_format_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_text_format_black_48dp.png
new file mode 100644
index 00000000..7d8fe6ab
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_text_format_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_text_format_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_text_format_white_48dp.png
new file mode 100644
index 00000000..b2063bb0
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_text_format_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_theaters_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_theaters_black_48dp.png
new file mode 100644
index 00000000..15abba2f
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_theaters_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_theaters_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_theaters_white_48dp.png
new file mode 100644
index 00000000..fadfab21
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_theaters_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_timelapse_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_timelapse_white_48dp.png
new file mode 100644
index 00000000..9be8b381
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_timelapse_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_timer_3_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_timer_3_white_48dp.png
new file mode 100644
index 00000000..106070ad
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_timer_3_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_timer_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_timer_white_48dp.png
new file mode 100644
index 00000000..b8914c4a
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_timer_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_tonality_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_tonality_black_48dp.png
new file mode 100644
index 00000000..d8ff9e43
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_tonality_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_touch_app_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_touch_app_black_48dp.png
new file mode 100644
index 00000000..9232363e
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_touch_app_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_touch_app_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_touch_app_white_48dp.png
new file mode 100644
index 00000000..3678975a
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_touch_app_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_trending_down_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_trending_down_black_48dp.png
new file mode 100644
index 00000000..86da030e
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_trending_down_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_trending_down_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_trending_down_white_48dp.png
new file mode 100644
index 00000000..dad6d471
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_trending_down_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_trending_flat_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_trending_flat_black_48dp.png
new file mode 100644
index 00000000..71e065a7
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_trending_flat_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_tune_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_tune_black_48dp.png
new file mode 100644
index 00000000..70db4a01
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_tune_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_unarchive_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_unarchive_black_48dp.png
new file mode 100644
index 00000000..514d69bd
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_unarchive_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_unarchive_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_unarchive_white_48dp.png
new file mode 100644
index 00000000..5e4dd3dd
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_unarchive_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_undo_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_undo_black_48dp.png
new file mode 100644
index 00000000..9ca7eb73
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_undo_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_undo_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_undo_white_48dp.png
new file mode 100644
index 00000000..6b10718b
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_undo_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_update_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_update_white_48dp.png
new file mode 100644
index 00000000..88edc5bc
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_update_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_verified_user_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_verified_user_white_48dp.png
new file mode 100644
index 00000000..c3de1b68
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_verified_user_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_view_agenda_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_view_agenda_black_48dp.png
new file mode 100644
index 00000000..8623ac10
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_view_agenda_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_view_column_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_view_column_black_48dp.png
new file mode 100644
index 00000000..d53c7b67
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_view_column_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_view_comfy_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_view_comfy_white_48dp.png
new file mode 100644
index 00000000..dc6581d5
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_view_comfy_white_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_vignette_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_vignette_black_48dp.png
new file mode 100644
index 00000000..dc7c3d0a
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_vignette_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_wb_cloudy_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_wb_cloudy_black_48dp.png
new file mode 100644
index 00000000..9ac14e86
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_wb_cloudy_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_wb_iridescent_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_wb_iridescent_black_48dp.png
new file mode 100644
index 00000000..9ebfb2e4
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_wb_iridescent_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_weekend_black_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_weekend_black_48dp.png
new file mode 100644
index 00000000..b8ce103e
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_weekend_black_48dp.png differ
diff --git a/autojs/src/main/res/drawable-xhdpi/ic_weekend_white_48dp.png b/autojs/src/main/res/drawable-xhdpi/ic_weekend_white_48dp.png
new file mode 100644
index 00000000..d7bc9386
Binary files /dev/null and b/autojs/src/main/res/drawable-xhdpi/ic_weekend_white_48dp.png differ