coord_delimeter = '|'
point_delimeter = ','
swip_right_max = 10000
swip_left_max = -swip_right_max

screen = getScreen()
if screen.width < screen.height then
    screen.width, screen.height = screen.height, screen.width
end
log("分辨率：" .. screen.width .. "x" .. screen.height)
if screen.width / screen.height < 16 / 9 or screen.height < 720 then
    toast("不支持当前分辨率" .. screen.width .. 'x' .. screen.height .. "")
    ssleep(3)
end
-- if getDisplayDpi() < 320 then stop("不支持DPI" .. getDisplayDpi()) end

hscale = screen.height / 1080
wscale = screen.width / 1920
minscale = min(hscale, wscale)
maxscale = max(hscale, wscale)

point = {
    前往下一轮 = "1809|1012|202020",
    -- 就这么决定了 = "1083|972|202020",
    就这么决定了 = "1140|1008|202020",
    打探消息 = "967|537|617D31,931|537|617D31,1021|537|617D31,958|552|FFFFFF",
    继续营业 = "1756|952|010101",
    营业奖励 = "1599|645|1F1F1F,1656|654|F5EADA",
    风情街 = "1770|160|CF344C",
    同意协议 = { text = "我已阅读并同意以上协议" },
    神州返回 = "1845|115|BFBFBF,1825|114|595959,1846|87|595959,1846|135|595959",
    神州领取1 = "1081|895|9E9E9E",
    神州领取2 = "1578|900|FFFFFF",
    端午签到中 = "678|951|82A528",
    端午签到左 = "333|948|534F34",
    端午签到返回 = "1785|136|C0C0C0,1765|135|595959,1785|108|595959",
    专项调查标识 = "1657|40|CF703C,1669|30|101010",
    专项调查提取 = "196|939|D0713C",
    专项调查启动 = "1831|939|B9683C",
    专项调查列表 = {
        "136|243|000000", "148|387|535353", "148|519|606060", "148|651|101010",
    },
    专项调查 = "387|265|FF6902",
    未来序曲 = "282|211|FF6E32,294|175|FFFFFF,216|151|E3E3E3",
    未来序曲领取 = "282|793|F3C4A2",
    未来序曲领取2 = "1111|786|F5AE8F",
    -- 备用作战页面确认标记
    代理券 = "1339|70|FFFFFF",
    标准环境 = "523|966|030F17",
    磨难环境 = "853|954|B32E2E",
    空白环境 = "1147|999|1A1E22",
    环境选择 = "169|934|FFFFFF",
    bilibili_tos = {
        id = "com.hypergryph.arknights.bilibili:id/tv_gsc_phone_terms",
    },
    祈愿牌确认 = "1524|928|B38375",
    祈愿牌返回 = "1812|151|BFBFBF,1788|150|595959,1815|126|595959,1815|171|595959",
    用餐 = "1692|604|D96A49",
    用餐区域 = "94|736|E1BDAE,121|739|EEC8B8",
    红包 = "768|769|DBCACA,1152|147|9E0808",
    艺术评论 = "1591|930|FC5715",
    产业合作洽谈会 = "175|114|1FBCB4,1788|139|FFFFFF",
    产业合作洽谈会策略 = { 1674, 945 },
    -- "1012|969|FF671D",
    B服安全验证框 = { class = "android.widget.RelativeLayout" },
    B服安全验证 = { text = "安全验证" },
    B服安全验证320DPI = "894|168|23ADE5,876|168|FFFFFF,891|159|FFFFFF,895|177|FFFFFF,907|165|FFFFFF,942|163|23ADE5",
    B服安全验证提交 = { text = "确认" },
    B服安全验证提交320DPI = "1132|783|BAD9FF",
    B服安全验证失败 = { text = "验证失败" },
    B服安全验证失败320DPI = "1155|847|DE715B",
    -- B服自建打码切割
    B服安全验证目标字符 = {
        level = "14",
        package = "com.hypergryph.arknights.bilibili",
    },
    B服安全验证目标字符切片 = {
        level = "15",
        package = "com.hypergryph.arknights.bilibili",
    },
    B服安全验证泛目标图像 = {
        index = "1",
        level = "14",
        package = "com.hypergryph.arknights.bilibili",
    },
    B服安全验证目标图像 = {
        index = "1",
        level = "17",
        package = "com.hypergryph.arknights.bilibili",
    },
    b服年度报告 = { package = "com.hypergryph.arknights.bilibili", text = "该内容不再展示" },
    b服年度报告关闭 = { class = "android.widget.ImageView", id = "com.hypergryph.arknights.bilibili:id/iv_gs_announcement_close", level = "5", package = "com.hypergryph.arknights.bilibili" },
    -- B服安全验证关闭 = {text = "关闭验证"},
    -- 选点验证码识别区域 = {794, 348, 1138, 745},
    月饼确认 = "1012|967|FF6411",
    月饼右 = "1450|568|FF4C02",
    月饼 = "940|159|FD4200,868|213|FD4200",
    剩余理智 = { 1695, 22, 1899, 95 },
    寻访右 = "1843|580|3162A5",
    fullscreen = { 0, 0, screen.width - 1, screen.height - 1 },
    后院工坊 = { 174, 814 },
    自走车友会有 = "193|895|FF5341",
    自走车友会 = { 225, 1015 },
    车友交流 = "1633|867|FFE964",
    车友交流1 = "565|604|3E4646",
    车友交流2 = "1456|640|0D0D0D",
    战略助战确认 = "1192|778|DCAB84",
    战略助战干员列表 = { { 283, 958 } },
    战略助战干员范围 = { 193, 841, 1920, 886 },
    战略助战界面 = "150|310|0098DC",
    战略助战 = "1528|43|CF4C02",
    剿灭记录确认 = "1491|970|085D82,957|981|FFFFFF,1495|1017|075B7F",
    回归返回 = "1863|72|C0C0C0,1831|73|595959,1861|43|595959,1885|73|595959,1861|94|595959",
    snap = { id = 'com.bilabila.arknightsspeedrun2:id/switch_snap' },
    -- 主题曲已开放 = "1804|534|F1F1F1,1210|580|F0F0F0,1117|249|4C4C54,1498|450|655C5C",
    主题曲已开放 = "1804|534|F1F1F1,1210|580|F0F0F0",
    剿灭接管作战 = "891|598|FFFFFF,846|589|313131,918|553|313131,918|607|313131",
    战略等级125 = "1627|76|FFB525",
    可露希尔 = "199|232|FEECDB,229|70|282828,103|267|6F0000",
    可露希尔右列表 = { { 1587, 958 } },
    可露希尔左列表 = {},
    阿米娅 = "186|235|FAEAD1,127|303|3DD1E2",
    阿米娅2 = "777|300|FAEAD1,714|369|3DD1E2",
    阿米娅右列表 = { { 1771, 841 }, { 1300, 832 } },
    阿米娅左列表 = { { 364, 913 } },
    -- 注册协议 = {text = "鹰角网络用户注册协议"},
    注册协议 = "949|328|CCCCCC,963|328|313131,958|351|FFFFFF,1372|756|FCFCFC",
    注册协议1 = "972|753|FCFCFC",
    注册协议2 = "972|843|616161",
    同意并继续 = { text = "同意并继续" },
    阅读并同意 = { text = "阅读并同意" },
    防沉迷 = { text = "防沉迷提示" },
    战略等级入口 = "1488|69|493828",
    战略源石锭入口 = "282|834|787878",
    -- 战略等级 = {1651, 25, 1806, 70},
    -- 战略等级 = {1462, 45, 1575, 91},
    -- 战略等级 = {1551, 58, 1695, 108},
    战略等级 = { 1551, 58, 1729, 96 },
    战略源石锭 = { 1639, 22, 1870, 94 },
    覆巢之下主页 = "402|54|A5A5A7,540|33|232426,543|72|2C2D2D",
    战略难度列表 = { { 1747, 523 }, { 1747, 613 }, { 1747, 703 } },
    幕后筹备界面 = "364|184|999999",
    幕后筹备升级 = function()
        return findAny({
            "幕后筹备升级有", "幕后筹备升级无", "幕后筹备升级不",
        })
    end,
    幕后筹备升级有 = "1494|988|FAA82C",
    幕后筹备升级无 = "1494|988|767676",
    幕后筹备升级不 = "1494|988|080808",
    -- 570
    幕后筹备升级左列表 = {
        { 1735, 570 },                                           -- 最后
        { 645,  265 }, { 645, 445 }, { 645, 625 }, { 645, 801 }, -- 1列
        { 943, 265 }, { 943, 445 }, { 943, 625 }, { 943, 801 },  --  2列
    },
    幕后筹备升级右列表 = {
        { 1569, 570 },                                           -- 最后
        { 777,  265 }, { 777, 445 }, { 777, 625 }, { 777, 801 }, -- 2列
    },
    -- 第一个都没点 1780
    幕后筹备升级中1列表 = {
        { 1335, 570 }, -- 最后
        { 1780, 265 }, { 1780, 445 }, { 1780, 625 }, { 1780, 801 },
    },
    -- 第一列点了 690
    幕后筹备升级中2列表 = {
        { 690,  570 },                                              -- 最后
        { 1138, 265 }, { 1138, 445 }, { 1138, 625 }, { 1138, 801 }, --
        { 1435, 265 }, { 1435, 445 }, { 1435, 625 }, { 1435, 801 }, --
    },
    -- 第二列点了 1905,1134
    幕后筹备升级中3列表 = {
        { 1905, 570 },                                              -- 最后
        { 1138, 265 }, { 1138, 445 }, { 1138, 625 }, { 1138, 801 }, -- 第二列
        { 841, 265 }, { 841, 445 }, { 841, 625 }, { 841, 801 },     -- 第二列
    },
    幕后筹备 = "378|676|040404",
    进驻总览控制中枢 = "1008|292|7E7E7A",
    进驻总览会客厅 = "1017|535|533F36",
    -- 全权委托确认使用 = "1522|955|333333,1887|895|000000",
    全权委托确认使用 = "1878|46|000000,1884|394|000000,1888|892|000000",
    -- "1522|955|333333,1887|895|000000",
    全权委托 = "1495|888|42C6FF",
    -- 开始行动活动黄 = "1603|943|D7B68D,1341|75|FFFFFF,1254|69|161616",
    作战主页列表1 = { 1000, 200 },
    作战主页列表2 = { 1000, 500 },
    幻觉范围 = { 738, 25, 1255, 66 },
    凋零残响 = "973|141|7F1818",
    断罪返回 = "1851|66|BFBFBF,1834|66|595959,1851|85|595959,1878|66|595959",
    -- TODO: 2023.4.1再说吧
    断罪 = "193|564|202020,147|558|484040",
    怪猎联动放入素材 = "1611|829|6F5032",
    怪猎联动炼金 = "1430|979|D84412",
    怪猎联动返回 = "51|54|F4F0E5",
    怪猎联动炼金值不足 = "1490|180|FFFFFF,1829|226|120401",
    干员第一个采样列表 = { { 661, 199 }, { 715, 244 }, { 769, 325 } },
    活动商店支付 = "1245|834|D92536",
    活动商店横线 = "350|227|590000",
    活动导航EX = "1543|990|F5E2C4",
    活动导航S = "",
    活动导航0 = "1731|567|B6B5EC",
    活动导航1 = "1754|753|693131,1826|766|4C1E1E",
    活动导航2 = "106|973|453C35,162|989|FDF6E5,386|962|7C6C63,389|1004|7D6E61",

    活动导航3 = "559|867|A19878",
    循心角色 = { "学生梅丽", "香肠摊摊主", "莱娜女士", "咖啡店店长", "可疑的市民", "乐器行老板",
        "艺术杂志编辑", "神秘的术师", "学生霍内斯", "治安官菲施尔", "小队长克斯汀", "雕刻师",
        "卖花人", "“哈曼", "珠宝店老板", "音乐家舒曼", "有嫌疑的术师", "宪兵席美尔", "学生布赫纳",
        "学生林德纳", "陌生男子", "大学学生", "莱辛", "密使", "米夏", "金律法卫", "大帝" },
    char2tag = {
        ["学生梅丽"] = {
            情绪 = "乐",
            欲望 = "尘俗",
        },
        ["香肠摊摊主"] = {
            情绪 = "乐",
            欲望 = "尘俗",
        },
        ["莱娜女士"] = {
            情绪 = "惧",
            欲望 = "尘俗",
        },
        ["咖啡店店长"] = {
            情绪 = "怒",
            欲望 = "尘俗",
        },
        ["可疑的市民"] = {
            情绪 = "怒",
            欲望 = "尘俗",
        },
        ["乐器行老板"] = {
            情绪 = "乐",
            欲望 = "智识",
        },
        ["艺术杂志编辑"] = {
            情绪 = "哀",
            欲望 = "智识",
        },
        ["神秘的术师"] = {
            情绪 = "哀",
            欲望 = "权柄",
        },
        ["学生霍内斯"] = {
            情绪 = "惧",
            欲望 = "智识",
        },
        ["治安官菲施尔"] = {
            情绪 = "乐",
            欲望 = "权柄",
        },
        ["小队长克斯汀"] = {
            情绪 = "惧",
            欲望 = "权柄",
        },
        ["雕刻师"] = {
            情绪 = "哀",
            欲望 = "尘俗",
        },
        ["卖花人"] = {
            情绪 = "哀",
            欲望 = "智识",
        },
        ["哈曼"] = { -- “长耳”哈曼
            情绪 = "惧",
            欲望 = "尘俗",
        },
        ["珠宝店老板"] = {
            情绪 = "怒",
            欲望 = "尘俗",
        },
        ["音乐家舒曼"] = {
            情绪 = "怒",
            欲望 = "智识",
        },
        ["朗格男爵"] = {
            情绪 = "乐",
            欲望 = "尘俗",
        },
        ["有嫌疑的术师"] = {
            情绪 = "怒",
            欲望 = "尘俗",
        },
        ["宪兵席美尔"] = {
            情绪 = "怒",
            欲望 = "权柄",
        },
        ["学生布赫纳"] = {
            情绪 = "哀",
            欲望 = "尘俗",
        },
        ["学生林德纳"] = {
            情绪 = "惧",
            欲望 = "智识",
        },
        ["陌生男子"] = {
            情绪 = "惊恐",
            欲望 = "智识",
        },
        ["大学学生"] = {
            情绪 = "悔恨",
            欲望 = "尘俗",
        },
        ["莱辛"] = {
            情绪 = "烦恼",
            欲望 = "尘俗",
        },
        ["密使"] = {
            情绪 = "紧张",
            欲望 = "智识",
        },
        ["米夏"] = {
            情绪 = "畏缩",
            欲望 = "智识",
        },
        ["金律法卫"] = {
            情绪 = "悲愤",
            欲望 = "智识",
        },
    },

    --空库存 = {671,536,900,616},
    --密令查访2 = "310|895|9A826C",
    --密令查访范围 = {194,600,558,964},
    普通查访0范围 = { 637, 800, 1001, 890 },
    普通查访1范围 = { 1035, 800, 1388, 890 },
    普通查访2范围 = { 1412, 800, 1766, 890 },
    突发查访0范围 = { 865, 820, 1228, 865 },
    突发查访1范围 = { 1247, 820, 1609, 866 },
    突发查访2范围 = { 1638, 820, 1920, 865 },
    突发查访 = "594|951|984954",
    乐 = "696|733|AA7F66",
    怒 = "876|733|A65557",
    哀 = "1047|733|6E9BAA",
    惧 = "1220|733|829D8B",
    欲念左 = "669|794|000000",
    欲念右 = "1256|794|000000",
    乐之章 = { 142, 239 },
    怒之章 = { 142, 366 },
    哀之章 = { 146, 496 },
    惧之章 = { 143, 619 },
    进入循心觅迹 = "207|622|B19F81",
    查访初始页面 = "1498|1005|548174",
    构建法术页面 = "1219|765|547864",
    法术集谱页面 = "125|221|B26B4F,122|258|A5634A,1491|455|919191",
    前往构建法术 = "1800|1001|111111",
    选择心扉之乐界面 = "327|1005|A29182",
    乐节符 = "695|762|86654B",
    怒节符 = "875|761|7A2A2C",
    哀节符 = "1048|759|557177",
    惧节符 = "1218|758|567763",
    联结第一步 = "1720|1000|111111",
    联结第二步 = "1667|998|FCFCFC",
    联结成功勾 = "951|963|4F4F4F",
    查访内跳过 = "1716|968|817A72",
    查访内继续提问 = "1532|973|8E755C",
    查访内选择乐章 = "1532|973|8E755C",
    心扉之乐内9种欲望 = {
        { 563, 278 }, { 802, 282 }, { 1033, 307 },
        { 563, 740 }, { 802, 740 }, { 1033, 740 },
        { 563, 1055 }, { 802, 1055 }, { 1033, 1055 },
    },
    向上滑动距离 = { 0, 893 },
    复现场景 = "1713|966|7D2C25",
    心绪相符 = "942|409|6A4F36",
    心绪不符 = "965|635|676767",
    例行查访完成 = "817|870|404040,1206|870|404040,1590|870|404040",
    突发例行查访完成 =
    "1030|870|0F0E0E,1406|870|404040,1790|870|404040",
    -- 活动导航3 = "559|867|A19878",
    -- 活动导航3 = "559|867|A19878",

    -- 每次商店颜色都不一样，故采用写死坐标方式
    活动商店导航 = "180|815|EBDBBE,178|795|C6B9B5", -- 只需要更新进入商店导航坐标
    商店主页 = "661|265|323233,1091|255|333334",
    商店支付 = { 1387, 837 },
    商店顶栏 = { 1161, 102 },
    商店初始物品 = { 210, 441 }, -- 第一行第一个
    商店物品间隔 = { 516, 242 },
    商店滑动距离 = { 1470, 1470 },
    商店最多 = "1598|605|535353",
    商店购买页面 = "1353|400|313131",

    活动任务一键领取 = "350|813|000000",
    活动任务 = "135|455|87949B",
    活动商店 = "354|463|F8F8F8",
    故事界面 = "213|256|645C51,161|140|616158",
    故事入口 = "213|805|665836",
    确认提交事相碎片 = "1424|746|720F0F",
    事相碎片不足 = "1691|171|ECECEC,1525|164|FFFFFF,1698|165|080707",
    面板活动 = { 1747, 214 },
    面板活动2 = { 1747, 328 },
    面板活动3 = { 1113, 282 },
    活动2商店支付 = "1345|840|85B7D4",
    活动2商店横线 = "360|225|85B7D8",
    活动2导航0 = "823|306|FFFFFF,808|283|E23816",
    活动2导航1 = "1683|706|C6A55B",
    活动2导航2 = "445|943|634031",
    活动2任务一键领取 = "416|965|CFAE64,282|982|40404C",
    活动2任务 = "516|790|C2B273",
    活动2商店 = "209|705|A67C3A",
    活动商店最多 = "1600|610|535353",
    活动商店列表 = {
        "100|421|FFFFFF", "100|663|FFFFFF", "100|903|FFFFFF",    --
        "616|421|FFFFFF", "616|663|FFFFFF", "616|903|FFFFFF",    --
        "1132|421|FFFFFF", "1132|663|FFFFFF", "1132|903|FFFFFF", --
        "1654|421|FFFFFF", "1654|663|FFFFFF", "1654|903|FFFFFF",
    },
    --[[
  活动商店列表 = {
    "100|430|FFFFFF", "100|673|FFFFFF", "100|910|FFFFFF",    --
    "616|430|FFFFFF", "616|673|FFFFFF", "616|910|FFFFFF",    --
    "1132|430|FFFFFF", "1132|673|FFFFFF", "1132|910|FFFFFF", --
    "1654|430|FFFFFF", "1654|673|FFFFFF", "1654|910|FFFFFF",
  },
  ]]
    故事集列表 = {
        "650|900|313131", "1150|900|313131", "1600|900|313131", --
    },
    理智药清空选择 = "1680|621|2F2F2F",
    -- 理智药到期时间范围 = {1056, 501, 1861, 571},
    理智药到期时间范围 = { 1056, 501, 1180, 571 },
    -- 零星代理 = "265|771|565656,379|771|565656,496|771|565656",
    -- 零星代理 = "558|769|565656,559|793|565656,493|795|565656",
    -- 零星代理 = "558|769|565656,559|793|565656,493|795|565656",
    零星代理 = "397|466|565656,399|487|565656,337|487|565656",
    账号登录返回 = "147|204|A2A2A2",
    战略第一行商品范围 = { 607, 126, 1815, 196 },
    战略第二行商品范围 = { 610, 460, 1824, 505 },
    战略商品列表 = {

        "824|408|02D3AE", "1133|408|02D3AE", "1442|408|02D3AE", "1751|408|02D3AE", --
        "824|724|02D3AE", "1133|724|02D3AE", "1442|724|02D3AE", "1751|724|02D3AE", --
        "797|408|02D3AE", "1106|408|02D3AE", "1415|408|02D3AE", "1722|408|02D3AE", --
        "797|724|02D3AE", "1106|724|02D3AE", "1415|724|02D3AE", "1722|724|02D3AE", --
    },
    -- 1位 816,1125,1434,1743
    -- 2位 789,1098,1407,1714

    副手第七干员选中 = "1219|361|0098DC",
    captcha_area = { 652, 150, 1255, 591 },
    captcha_left_area = { 576, 150, 670, 591 },
    captcha_area_btn = { 642, 712 },
    bilibili_account_switch = "1416|88|4FBDEA,1602|42|FFFFFF,1593|150|FFFFFF",
    制造站最多 = "1446|307|404040",
    制造站执行更改 = "1420|847|00A5EF",
    贸易站设施列表 = { "127|319|00B1FF" },
    未进驻设施列表 = { "127|319|999999" },
    制造站补货通知 = "1480|331|FFFFFF,1492|348|FFFFFF,1486|394|FFFFFF",
    宿舍等级列表 = {
        -- 1行
        { 1048, 454 }, { 1057, 454 }, { 1066, 454 }, { 1075, 454 }, { 1084, 454 }, --
        -- 2行
        { 1168, 574 }, { 1177, 574 }, { 1186, 574 }, { 1195, 574 }, { 1204, 574 }, --
        -- 3行
        { 1048, 694 }, { 1057, 694 }, { 1066, 694 }, { 1075, 694 }, { 1084, 694 }, --
        -- 4行
        { 1168, 814 }, { 1177, 814 }, { 1186, 814 }, { 1195, 814 }, { 1204, 814 },
    },
    基建等级列表 = {
        -- 1行
        { 310, 456 }, { 318, 456 }, { 327, 456 }, { 550, 456 }, { 558, 456 }, { 567, 456 },
        { 789, 456 }, { 798, 456 }, { 807, 456 }, --
        -- 2行
        { 190, 576 }, { 198, 576 }, { 207, 576 }, { 430, 576 }, { 438, 576 }, { 447, 576 },
        { 669, 576 }, { 678, 576 }, { 687, 576 }, --
        -- 3行
        { 310, 696 }, { 318, 696 }, { 327, 696 }, { 550, 696 }, { 558, 696 }, { 567, 696 },
        { 789, 696 }, { 798, 696 }, { 807, 696 },
    },
    制造站设施列表 = {
        "127|319|FFD800", "124|442|FFD800", "127|565|FFD800", "127|688|FFD800",
        "127|814|FFD800", "127|937|FFD800", "127|1060|FFD800", "127|1183|FFD800",
        "127|1306|FFD800",
    },
    贸易站进度 = "381|966|232527",
    设施列表第一个干员 = "489|975|4C4444",
    设施列表第二个干员 = "489|975|4C4444",
    开采协力 = "1707|903|650202",
    龙门商法 = "1699|903|0075A8",
    放弃行动 = "1102|483|FFFFFF",
    剿灭放弃行动 = "1102|857|FFFFFF",
    代理指挥未解锁 = "975|110|FFFFFF,993|110|FFFFFF,1008|123|FFFFFF,1003|134|FFFFFF",
    每周报酬合成玉 = "1677|186|C82A36,1668|184|313131,1675|213|C82A36",
    投币提示采样列表 = {
        { 1789, 820 }, { 1789, 739 }, { 1798, 631 }, { 1798, 523 },
    },
    适龄提示 = "1620|204|BFBFBF",
    查看谢幕表 = "829|9|4B1A12,844|38|491F10",
    暂停中 = "929|506|FFFFFF,1121|542|FFFFFF,972|584|FFFFFF,1031|512|FFFFFF",
    -- 面板赠送一次 = "1792|708|D48804,1809|708|EAEAEA",
    -- 面板赠送一次 = "1792|708|D48804",
    -- 面板赠送一次 = "1809|708|EAEAEA",
    -- 面板赠送一次 = "1760|705|D48804,1796|709|D48804,1808|709|EAEAEA,1874|712|EAEAEA",
    --
    -- "1196|472|B89959,838|602|C7A55E"
    -- "1195|471|07A9A8,880|594|03B7B6,904|612|393939"
    --面板赠送一次 = "1773|723|FFFFFF,1761|709|EA6EA0,1795|737|EA6EA0",
    面板赠送一次 = "1773|723|FFFFFF,1761|709|725B52,1795|737|6F615B",
    面板赠送一次范围 = { 1395, 631, 1920 - 1, 1080 - 1 },
    --赠送一次 = "1326|877|FF76AD",
    赠送一次 = "1326|877|7B6157",
    寻访一次 = { 1321, 980 },
    感谢典点击领取 = "1377|716|00D654",
    感谢庆典返回 = "1564|193|C0C0C0,1536|193|595959,1560|163|595959,1563|213|595959",
    -- captcha = {id = 'com.hypergryph.arknights:id/gt3_wait_tv2'},
    -- captcha = {
    --   class = "android.webkit.WebView",
    --   package = "com.hypergryph.arknights",
    -- },
    captcha = function()
        if findOne({ id = 'captcha', package = appid }) then
            return findOne({ class = "android.webkit.WebView", package = appid })
        end
    end,
    -- captcha = "604|721|00D266,612|721|F9F9F9,594|721|F9F9F9",
    -- captcha = "604|721|66D200,612|721|F9F9F9,594|721|F9F9F9",
    -- 技能ready = "1181|687|CBEC47,1191|697|FFFFFF,1203|708|CBEC47",
    -- 技能ready = "1192|699|FFFFFF,1314|691|CBEC47,1180|689|CBEC47",
    -- 技能ready = "1192|699|FFFFFF,1314|691|CBEC47,1180|689|CBEC47,1182|710|CBEC47",

    生命值蓝 = "3|496|029EFF",
    技能ready = "1315|689|CBEC47,1308|685|CBEC47,1308|700|CBEC47,1320|685|CBEC47,1322|700|CBEC47",
    -- "1192|699|FFFFFF,1314|691|CBEC47,1180|689|CBEC47",
    开技能 = { 1270, 600 },
    技能亮 = "958|316|FFD802,959|331|000000,959|344|FFD802,975|329|FFD802",
    源石锭 = "251|788|3A7258",
    收藏品 = "251|788|9D6A21",
    招募券 = "251|788|7F969F",
    剧目 = "251|788|796329",
    源石锭范围 = { 0, 788, 1919, 790 },
    收藏品范围 = { 0, 788, 1919, 790 },
    招募券范围 = { 0, 788, 1919, 790 },
    剧目范围 = { 0, 788, 1919, 790 },
    战略二技能 = "525|831|00B3FD",
    我知道了 = "582|780|060606,948|1050|3F3F3F,942|906|E9E9E9,1332|822|060606",
    获得物资 = "959|942|262424,1031|84|8A8987,1007|144|8A8A8A,931|143|8A8A8A",
    保持配音 = "953|608|2E2E2E",
    保持配音确定 = "965|722|313030",
    -- 资源下载确定 = "1099|763|1D6687,1209|757|313131",
    资源下载确定 = "990|916|19688C,1041|855|313131,1041|951|313131",
    -- 启动导航
    -- 下载资源确认 = "987|671|1D6687,1268|671|1D6687,1340|671|313131",
    --- 画中人导航
    -- 活动导航1 = "832|1030|0C181A,1084|913|DFD7C1,1120|1012|927F5F",

    -- 水月
    水月_常规行动选中状态 = "1217|997|FFFFFF",
    水月_常规行动选未中状态 = "1217|997|A7A7A8",
    水月_常规行动 = function()
        return findAny({
            "水月_常规行动选中状态", "水月_常规行动选未中状态",
        })
    end,
    水月_初始招募 = "1060|92|FFFFFF",
    水月_战略帮助 = "189|26|C9C9C9,192|17|2C2C2C",
    浪离灯熄 = "930|198|8B1F1F",
    目标生命 = "251|788|3B809F",
    水月_收藏品 = "231|759|4E6EB6",
    水月_投掷次数 = "231|759|467AC1",
    水月_不要了 = "611|614|F5F5F5,704|633|F5F5F5,789|614|F5F5F5",
    水月_放弃探索 = "1742|447|721820",
    选择未选中状态水月_ = "461|599|4A566C",
    选择选中状态水月_ = "449|551|CFBFE8",
    --- 肉鸽
    选择分队 = "935|93|CE9320",
    成功通过 = "453|799|FFFFFF,219|805|FFFFFF,327|828|FFFFFF,117|846|FFFFFF",
    诡意行商离开 = "1834|891|313131,1741|822|898989",
    诡意行商投资入口 = "1090|349|FFFFFF,1095|326|FFFFFF",
    -- 诡意行商确认投资 = "1485|738|FFFFFF",
    诡意行商确认投资 = "1485|769|FFFFFF",
    诡意行商投币 = "1293|493|FFFFFF,1275|517|FFFFFF,1287|511|FFFFFF",
    诡意行商投资 = "727|301|02D3AE",
    战略帮助 = "189|26|C9C9C9,192|17|2F2F2F",
    不期而遇第二选项 = "1782|577|000000",
    不期而遇第三选项 = "1782|810|000000",
    -- 不要了列表 = {{1191, 787}, {723, 787}, {291, 787}, {1551, 787}},
    不要了 = "601|668|DDDDDD,603|661|DDDDDD,696|680|DDDDDD|781|661|DDDDDD",
    不要了范围 = { 0, 630, 1920 - 1, 667 },
    部署位意外 = { 1077, 481 },
    -- 部署位死斗 = {1623, 735},
    部署位死斗 = { 661, 784 },
    部署位礼炮小队 = { 759, 512 },
    部署位与虫为伴 = { 1143, 637 },
    部署位驯兽小屋 = { 651, 722 },
    -- 部署位与虫为伴 = {1203,368},
    -- 部署位与虫为伴 = {951, 840},
    -- 部署位与虫为伴 = {951, 840},
    进入 = "1855|703|D7D7D7",
    -- "1855|703|232C23"
    进入界面 = "1837|862|000000",
    -- 进入 = "1848|810|272F27",
    攻击范围 = "33|418|7F7F7F",
    编队 = "1656|995|CECECE,1638|994|313131,1678|976|313131",
    偏执的1 = "1000|47|4B0505",
    偏执的2 = "1033|46|4B0505",
    偏执的 = function() return findAny({ "偏执的1", "偏执的2" }) end,
    战略返回 = "35|20|5C0000",
    确认招募 = "1773|989|0075A8",
    -- 傀影 = "79|178|E8F0F0,78|155|000000",
    傀影 = "33|140|000000",
    放弃探索 = "1668|582|000000,1668|626|000000,1668|674|000000",
    放弃本次探索 = "1748|490|541212",
    干员列表 = { 1829, 998 },
    干员费用够列表 = { "1854|895|FFFFFF" },
    生命值 = "1764|776|010101,1756|776|FFFFFF,1772|776|FFFFFF",
    快捷编队 = "1402|86|0098DC",
    -- 第一层作战 = {489, 574, 672, 679},
    -- 第一层作战 = {514, 571, 652, 625},
    第一层作战 = { 1336, 208, 1483, 316 },
    -- 第一层作战1 = {847, 571, 1027, 679},
    第一层作战1 = { 514, 571 },
    第一层不期而遇1 = { 1600, 328, 2017, 774 },
    -- 第一层不期而遇2 = {259, 328, 705, 774},
    第一层不期而遇2 = { 290, 328, 705, 774 },
    第一层作战2 = { 933, 530, 1173, 590 },
    第一层从下方来 = "1387|573|FFFFFF",
    第一层上一个 = { 613, 346 },
    第一层不期而遇1列表 = {
        "1236|303|FFFFFF", "1236|395|FFFFFF", "1236|486|FFFFFF", "1236|575|FFFFFF",
        "1236|666|FFFFFF",
    },
    第一层不期而遇2列表 = {
        "1909|303|FFFFFF", "1909|395|FFFFFF", "1909|486|FFFFFF", "1909|575|FFFFFF",
        "1909|666|FFFFFF",
    },
    第一层不期而遇1入口列表 = {
        "1131|298|FFFFFF", "1131|390|FFFFFF", "1131|481|FFFFFF", "1131|570|FFFFFF",
        "1131|661|FFFFFF",
    },
    第一层不期而遇2入口列表 = {
        "1806|298|FFFFFF", "1806|390|FFFFFF", "1806|481|FFFFFF", "1806|570|FFFFFF",
        "1806|661|FFFFFF",
    },
    -- "824|257|FFFFFF,824|393|FFFFFF,1273|393|FFFFFF,1273|256|8F8F8F"

    -- 第一层下一个 = {1283, 346},
    -- 第一层下一个 = {1305, 346},
    -- 第一层下一个 = {1305, 350},
    第一层下一个 = { 1290, 350 },
    -- "933|530|343939,1173|590|1A1A1A,942|906|E9E9E9,1332|822|060606"
    -- "1011|536|0C0C0C,1135|568|080808"
    指挥等级 = "672|35|A0A0A0,668|69|343434",
    放弃招募 = "1468|1016|575757",
    招募说明关闭 = "170|157|2B2B2B",
    初始招募 = "1187|92|CE9320",
    -- 指挥分队 = "259|884|FFFFFF",
    战略确认 = "1034|940|614817",
    -- 战略确认 = "1034|963|614817",
    取长补短 = "1183|662|FFFFFF,1197|656|FFFFFF",
    -- 指挥分队 = "188|653|FFFFFF,226|664|FFFFFF,287|660|FFFFFF",
    指挥分队1 = "273|673|FFFFFF",
    指挥分队2 = "274|675|FFFFFF",
    指挥分队 = function() return findAny({ "指挥分队1", "指挥分队2" }) end,
    -- 指挥分队确认 ="254|878|FFFFFF",
    指挥分队确认 = "256|864|FFFFFF",
    近卫招募列表 = {
        { 921,  229 }, { 927, 427 }, { 939, 642 }, { 939, 822 }, { 1539, 228 }, { 1539, 432 },
        { 1539, 630 }, { 1533, 828 }, { 1853, 150 }, { 1859, 366 }, { 1853, 558 },
        { 1859, 835 },
        -- "666666|212121|4C4C4C|CACACA"
    },
    近卫招募券 = "391|520|060606",
    辅助招募券 = "956|520|060606",
    医疗招募券 = "1349|520|060606",
    进入古堡 = "1830|520|060606",
    -- 取长补短 = "1171|903|0E0E0E",
    战略进度条采样列表 = {
        { 885, 92 }, { 959, 92 }, { 1036, 92 }, { 1110, 92 }, { 1187, 94 },
    },
    继续探索 = "1749|980|251B07",
    -- 常规行动1 = "1533|1076|FDAC2E",
    常规行动1 = "1395|1076|FDAC2E",
    -- 常规行动2 = "1629|153|BB7E27",
    -- 常规行动2 = "1855|148|B57D26",
    -- 常规行动2 = "1482|75|FFFFF2",
    常规行动2 = "1422|100|2B1A12,1482|76|FFFFF7,1492|124|1C140C",
    常规行动 = function() return findAny({ "常规行动1", "常规行动2" }) end,
    集成战略列表 = { "155|214|FFFFFF" },
    傀影与猩红孤钻 = "936|234|BBB3AB,937|234|BAB2AA",
    进入主题 = "1606|765|110F0F",
    面板限时活动 = "248|125|FF6801",
    面板限时活动2 = "248|206|FF6801",
    面板限时活动3 = "248|284|FF6801",
    -- 第一干员卡片 = "627|379|88888A,627|378|FFFFFF,626|379|FFFFFF",
    -- 第一干员卡片 = "627|379|88888B,626|379|FFFFFF",
    第一干员卡片 = "627|380|88888B,626|380|FFFFFF",
    第一干员卡片范围 = { 600, 380, 1710, 380 },
    第一干员未选中 = "828|270|FFFFFF",
    行动配置不可更改 = "948|1009|464645",
    bilibili_license_ok = {
        id = 'com.hypergryph.arknights.bilibili:id/tv_gsc_agreement',
    },
    bilibili_phone_inputbox = {
        id = "com.hypergryph.arknights.bilibili:id/et_gsc_phone_num",
    },
    bilibili_username_inputbox = {
        id = "com.hypergryph.arknights.bilibili:id/et_gsc_account",
    },
    bilibili_password_inputbox = {
        id = "com.hypergryph.arknights.bilibili:id/et_gsc_account_pwd",
    },
    bilibili_framelayout_only = function()
        -- log(32,appid,bppid,findOne())
        -- log(32,appid,bppid,findOne("game"),findOne("bgame"))
        return appid == bppid and findOne("game") and not findOne("bgame")
    end,
    framelayout_only = function()
        return appid == oppid and findOne("game") and not findOne("ogame")
    end,
    bilibili_framelayout = {
        class = "android.widget.FrameLayout",
        package = "com.hypergryph.arknights.bilibili",
    },
    framelayout = {
        class = "android.widget.FrameLayout",
        package = "com.hypergryph.arknights",
    },
    realgame = function() return findOne(appid == oppid and "ogame" or "bgame") end,
    game = function()
        return findOne(appid == oppid and "framelayout" or "bilibili_framelayout")
    end,
    ogame = { class = "android.view.View", package = oppid, desc = 'Game view' },
    bgame = { class = "android.view.View", package = bppid, desc = 'Game view' },
    bilibili_login = {
        id = "com.hypergryph.arknights.bilibili:id/tv_gsc_account_login",
    },

    login = { text = "登 录" },
    password_login = { text = "密码登录" },
    username_inputbox = { class = "android.widget.EditText" },
    login_checkbox = { class = "android.widget.CheckBox" },
    用户中心 = "112|745|F5F5F5",
    login_out = { text = "退出登录" },
    yes = { text = "是" },
    login_switch = { text = "登录其他账号" },

    bilibili_oneclicklogin = {
        id = "com.hypergryph.arknights.bilibili:id/tv_gsc_record_login",
    },
    bilibili_ok = { id = "tv.danmaku.bili:id/ok" },
    bilibili_account_login = {
        id = "com.hypergryph.arknights.bilibili:id/iv_gsc_account_login",
    },
    bilibili_change = {
        id = "com.hypergryph.arknights.bilibili:id/tv_gsc_record_login_change",
    },
    bilibili_change2 = {
        id = "com.hypergryph.arknights.bilibili:id/tv_gsc_wel_change",
    },
    bilibili_other = { id = "com.hypergryph.arknights.bilibili:id/tv_gsc_other" },
    inputbox = {
        class = "android.widget.EditText",
        package = "com.hypergryph.arknights",
    },
    okbutton = {
        class = "android.widget.Button",
        package = "com.hypergryph.arknights",
    },
    gesture_capture_ui = { text = "亮屏解锁" },
    keyguard_indication = {
        id = 'com.android.systemui:id/keyguard_indication_area',
    },
    keyguard_input = { id = 'com.android.systemui:id/keyguard_host_view' },
    返还规则 = "1447|934|FFFFFF",
    -- 作战进度 = "1042|934|000000",
    开始作业 = "1601|838|942921",
    限时开放许可 = "1824|73|595959,1843|73|C2C2C2,1839|56|595959,1863|74|595959,1841|87|595959",
    限时幸运签 = "1826|124|595959,1848|124|BFBFBF,1846|145|595959,1877|124|595959",
    限时幸运签抽取 = "1696|811|968D8A",
    限时幸运签列表 = { { 453, 398 }, { 459, 607 }, { 669, 397 } },
    感谢庆典点击领取 = { 1255, 729 },
    行动结束 = "72|261|818181,7|720|000000,9|643|000000,112|325|FFFFFF,174|330|FFFFFF,472|339|FFFFFF,19|43|010101",
    基建收获线索提示 = "1469|196|FFFFFF,1467|199|FFFFFF,1458|208|FFFFFF,1447|199|FFFFFF",
    剿灭说明 = "273|161|FFFFFF,304|140|313131,302|183|313131,270|156|313131,278|165|313131",
    剿灭提示 = "202|78|740505,1685|106|FFFFFF",
    账号管理 = "1338|1035|585858",
    线索传递有好友 = "1793|182|FFFFFF",
    线索传递界面 = "18|28|8C8C8C,52|31|323232,15|96|242424,15|186|1C1C1C",
    未解锁第9章 = "97|825|282828",
    单选确认框 = "1807|254|333333,1801|457|333333,1803|665|333333,1799|692|0B0B0B,1797|785|0A0A0A",
    上一次 = "1880|881|242424",
    接收线索 = "1276|1|E5E5E5",
    接收线索第一个 = "1882|218|EBEBEB",
    筛选横线 = "58|59|FFFFFF",
    -- 经验站 = "179|901|2B2B2B",
    -- 赤金站 = "147|916|AE6C38",
    -- 源石站 = "129|915|FFFFF9",
    -- 芯片站 = "104|868|17596A",
    --
    -- 经验站 = "1734|484|2B2B2B",
    -- 赤金站 = "1708|495|AF6D34",
    -- 源石站 = "1689|493|FFFFF9",
    -- 芯片站 = "1669|451|185A6B",

    经验站 = "1644|451|2C2C2C",
    赤金站 = "1627|466|573513",
    芯片站 = "1650|444|10526A",
    芯片站已完成 = "1671|478|999999",
    芯片站选经验 = "1090|423|1B1B1B",
    芯片站选赤金 = "420|214|573615",
    芯片站选赤金类 = "306|331|CECDCB",
    源石站 = "1683|457|975544",
    进驻总览底部采样列表 = { { 1878, 1015 } },
    隐藏 = "1789|943|FFFFFF,1751|983|FFFFFF,1816|961|FFFFFF",
    好友采样列表 = {
        { 767, 150 }, { 804, 201 }, { 767, 402 }, { 817, 439 }, { 754, 627 }, { 830, 677 },
        { 754, 852 }, { 830, 878 },
    },
    经验书选中列表 = {
        "1175|97|FF7902", "870|681|FF7902", "868|392|FF7902", "872|97|FF7902",
    },
    干员选中列表 = {
        "642|115|0098DC", "642|530|0098DC", "859|115|0098DC", "859|530|0098DC",
    },
    小蓝圈 = "340|1010|2C2E2C,328|996|27A0D7",
    等级升 = "1205|80|303030",
    干员界面 = "1883|31|313131,1675|91|313131,1795|75|FFFFFF",
    邮件提示采样列表 = { { 1915, 105 } },
    等级采样列表 = { { 1190, 66 } },
    等级 = { 1190, 66 },
    升级 = "1825|138|FFFFFF",
    干员1 = "142|354|AAAAAA",
    录像列表 = {
        "1247|181|2B2B2B", "938|767|2B2B2B", "939|471|2B2B2B", "939|177|2B2B2B",
    },
    -- 当期委托 = {892, 467},
    当期委托 = "925|663|3B3B3B",
    当前委托侧边栏 = "1136|50|180000",
    切换 = "1729|1039|000000",
    -- 19
    -- 开始行动 = "1902|20|242424,1895|980|242424,1915|810|0B0B0B,1890|886|242424,1895|599|242424,1895|436|242424",
    -- 开始行动1 = "1902|20|242424,1888|768|0B0B0B,1882|858|242424",
    开始行动1 = "1887|33|242424,1888|768|0B0B0B,1882|858|242424",
    开始行动2 = "1902|30|2C2222,1891|759|130909,1891|865|401E1E",
    进入活动 = "1702|801|EBEBEB,1758|804|F9F9F9,1814|782|FAFAFA",
    -- 开始行动活动 = "1342|70|FFFFFF,1249|70|161616",
    -- 开始行动活动 = "1342|75|FFFFFF,1252|69|161616,1870|96|161616,1627|868|F5F5F5",
    开始行动活动 = "1341|73|FFFFFF,1234|66|161616,1798|33|161616,1611|57|FFFFFF",
    开始行动 = function()
        return findAny({ "开始行动1", "开始行动2", "开始行动活动" })
    end,
    确定抽取 = { 1672, 815 },
    -- 副手确认蓝 = "1654|969|0075A8,1880|1037|0075A8",
    -- 副手确认蓝 = "1825|1039|0075A9",
    副手确认蓝 = "1702|985|0075A9",
    清空选择 = "871|979|313131",
    -- 确认蓝 = "1885|990|0075A8,1885|1000|0075A8,1885|979|0075A8",
    确认蓝 = "1880|990|0075A8,1885|1000|0075A8,1885|979|0075A8",
    -- 1880就不行了 miui13
    筛选采样列表 = {
        { 1745, 36 }, { 1745, 37 }, { 1745, 37 }, { 1745, 42 }, { 1745, 44 }, { 1745, 46 },
        { 1788, 68 }, { 1788, 70 },
    },
    筛选 = "1793|39|FFFFFF,1793|61|FFFFFF,1786|63|373737,1793|75|FFFFFF,1798|64|373737",
    正在提交反馈至神经 = "960|958|FFFFFF,997|996|FFFFFF,959|1034|FFFFFF,919|996|FFFFFF",
    进驻采样列表 = {
        { 1007, 145 }, { 1148, 165 }, { 995, 293 }, { 1174, 298 }, { 1019, 437 }, { 1171, 516 },
        { 992,  590 }, { 1012, 815 }, { 1162, 799 }, { 1012, 696 },
    },
    线索搜集提示 = "1467|200|FFFFFF",
    基建右上角 = "1917|36|333333",
    好友 = { 99, 613 },
    缩放结束1 = "929|275|545454,929|276|F1F0F1,932|275|F1F0F1",
    缩放结束2 = "929|324|545454,929|323|F1F0F1,932|324|F1F0F1",
    缩放结束3 = "925|327|F1F0F1,930|328|545454,932|328|F1F0F1",
    缩放结束 = function()
        return findAny({ "缩放结束1", "缩放结束2", "缩放结束3" })
    end,
    信赖采样列表 = { { 1438, 64 } },
    心情采样列表 = { { 1559, 69 } },
    宿舍列表 = {
        "1047|454|FFFFFF", "1168|574|FFFFFF", "1047|694|FFFFFF", "1168|814|FFFFFF",
    },
    入驻干员底部 = "1830|769|747474,1879|922|717171",
    入驻干员顶部 = "1879|125|595959",
    入驻干员 =
    "1615|229|898989,1605|229|313131,1615|219|313131,1753|367|898989,1751|374|313131,1761|365|313131,1682|367|898989,1668|367|898989,1682|376|313131,1699|374|313131,1626|241|898989,1641|257|898989,1656|273|898989,1710|277|898989,1728|250|898989,1745|233|898989,1742|340|898989,1709|354|898989,1640|351|898989,1634|304|898989",
    入驻干员控制中枢 =
    "1615|229|898989,1605|229|313131,1615|219|313131,1753|367|898989,1751|374|313131,1761|365|313131,1682|367|898989,1668|367|898989,1682|376|313131,1699|374|313131,1626|241|898989,1641|257|898989,1656|273|898989,1710|277|898989,1728|250|898989,1745|233|898989,1742|340|898989,1709|354|898989,1640|351|898989,1634|304|898989",
    入驻干员会客厅 =
    "1615|229|898989,1605|229|313131,1615|219|313131,1753|367|898989,1751|374|313131,1761|365|313131,1682|367|898989,1668|367|898989,1682|376|313131,1699|374|313131,1626|241|898989,1641|257|898989,1656|273|898989,1710|277|898989,1728|250|898989,1745|233|898989,1742|340|898989,1709|354|898989,1640|351|898989,1634|304|898989",
    入驻干员范围 = { 900, 124, 1800, 1080 },
    -- "631|138|DFDFDF,1831|426|E9E9E9"
    入驻干员控制中枢范围 = { 900, 124, 1800, 414 },
    入驻干员会客厅范围 = { 900, 414, 1800, 654 },
    宿舍范围 = { 629, 102, 918, 1069 },
    本次线索交流活动 = "46|139|CE6200,543|186|CE6200",
    无人机加速 = "325|571|FFFFFF",
    公开招募右确认 = { 980, 780 },
    公开招募确认蓝 = "1389|870|0098DC",
    -- 公开招募取消 = "1400|977|313131",
    -- 为什么不能用：因为会被正在提交至神经网络干扰
    公开招募取消 = "1480|972|FFFFFF,1586|948|313131,1338|1000|313131",
    公开招募列表 = {
        "487|435|FFFFFF", "1434|435|FFFFFF", "487|852|FFFFFF", "1434|842|FFFFFF",
    },
    公开招募点击列表 = {
        "487|435|FFFFFF", "1434|435|FFFFFF", "487|852|FFFFFF", "1434|800|FFFFFF",
    },
    聘用候选人列表 = {
        "576|564|FFFFFF", "1523|564|FFFFFF", "576|981|FFFFFF", "1523|981|FFFFFF",
    },
    立即招募列表 = {
        "917|526|313131", "1864|526|313131", "917|943|313131", "1865|943|313131",
    },
    开包skip = { 1838, 52 },
    公开招募标签框列表 = {
        { 566, 544, 774, 606 }, { 817, 544, 1025, 606 }, { 1068, 544, 1276, 606 },
        { 566, 653, 774, 715 }, { 817, 653, 1025, 715 }, { 1068, 653, 1276, 715 },
    },
    -- 公开招募标签框范围 = {566, 540, 1274, 720},
    -- 公开招募标签框范围 = {540, 518, 1296, 740}, -- 1080x2400可以
    公开招募标签框范围 = { 563, 540, 1279, 719 }, -- 720p可以
    -- "565656|B7B7B8"
    -- "375|360|565656,853|479|B7B7B8"
    公开招募 = "1356|106|313131,1357|144|313131",
    -- 公开招募箭头 = "1873|535|FFFFFF",
    -- 公开招募箭头 = "1918|535|FFFFFF",
    -- 公开招募箭头 = "962|166|F09509",
    公开招募箭头 = "961|169|F29800",
    公开招募标签刷新蓝 = "1455|611|0098DC",
    公开招募标签刷新灰 = "1455|611|B0AEAD",
    消耗一次联络机会确认 = { 1044, 795 },
    公开招募时间加 = { 750, 233 },
    公开招募时间减 = "750|463|313131",
    公开招募时间减2 = "923|463|535353",
    公开招募标签范围 = { 552, 530, 1290, 728 },
    可露希尔推荐 = "80|122|9A0101",
    -- 别用这个，会受到正在提交至神经网络的影响
    -- 干员解锁进度 = "365|1001|0098DC",
    干员解锁进度 = "370|1001|0098DC,370|1000|313131",
    信用交易所2 = "1646|122|FF6801",
    信用交易所横线 = "54|203|FFFFFF",
    信用交易所 = function()
        for i = 1, 10 do
            if not findAny({
                    "信用交易所列表" .. i, "信用交易所已购列表" .. i,
                }) then
                return
            end
        end
        return true
    end,
    收取信用 = { 1530, 60 },
    收取信用有 = "1480|42|DB6211",
    信用交易所已购列表 = {
        "195|223|ACACAC", "575|223|ACACAC", "955|223|ACACAC", "1340|223|ACACAC",
        "1715|223|ACACAC", "195|604|939393", "575|604|939393", "955|604|939393",
        "1340|604|939393", "1715|604|939393",
    },
    信用交易所列表 = {
        "195|223|313131", "575|223|313131", "955|223|313131", "1340|223|313131",
        "1715|223|313131", "195|604|313131", "575|604|313131", "955|604|313131",
        "1340|604|313131", "1715|604|313131",
    },
    购买物品 = "1252|863|FF6800",
    购买物品面板 = "1567|874|313131",
    信用不足 = "1917|255|262626",
    干员选中 = "273|267|FFFFFF",
    干员未选中 = "273|267|989898",
    信赖 = "1453|77|01A1E9",
    基建副手 = { 149, 684 },
    基建副手简报 = "1719|77|0099DC",
    基建副手列表 = {
        { 625, 373 }, { 274, 796 }, { 526, 796 }, { 769, 805 }, { 1012, 796 },
    },
    干员空隙列表 = {
        { 846,  300 }, { 1064, 300 }, { 1285, 300 }, { 1499, 300 }, { 1722, 300 }, { 1933, 300 },
        { 2154, 300 }, { 2373, 300 },
    },
    收集全部 = "1505|200|0098DC",
    任务有列表 = {
        "1253|21|FF6801", "1558|21|FF6801", -- "1862|21|FF6801", -- 4标签
        "1000|21|FF6801", "1406|21|FF6801", -- "1812|21|FF6801", -- 3标签
    },
    --  16,e
    任务无列表 = {
        "1253|21|313131", "1558|21|313131", -- "1862|21|313131", -- 4标签
        "1000|21|313131", "1406|21|313131", -- "1812|21|313131", -- 3标签
    },
    任务未选中列表 = {
        "1253|21|E1E1E1", "1558|21|E1E1E1", -- "1862|21|E1E1E1", -- 4标签
        "1000|21|E1E1E1", "1406|21|E1E1E1", -- "1812|21|E1E1E1", -- 3标签
    },
    任务第一个 = "703|17|313131,1892|81|E1E1E1",
    面板好友 = { 656, 875 },
    面板作战活动上 = { 1747, 214 },
    面板作战活动下 = { 1747, 328 },
    -- 面板作战 = {1353, 290},
    面板作战 = { 1400, 290 },
    面板采购中心 = { 1162, 720 },
    面板公开招募 = { 1400, 767 },
    面板干员寻访 = { 1652, 767 },
    面板干员 = { 1400, 530 },
    面板任务 = { 1145, 908 },
    面板基建 = { 1478, 924 },
    面板邮件 = { 288, 57 },
    面板设置 = { 74, 57 },
    退出登录 = { 1190, 894 },
    退出登录2 = { 1190, 563 },
    -- 账户设置 = function()
    --   return findOne("退出登录") and findAny({"返回3", "返回4"})
    -- end,
    访问下位 = "1791|873|D35A0A",
    访问下位橘 = "1791|1013|D15806",
    访问下位灰 = "1651|959|2C2C2C,1889|965|2C2C2C,1903|1006|2C2C2C,1676|1010|2C2C2C",
    -- 个人名片 = "97|345|FFFFFF,124|197|313131,88|478|FFFFFF,275|58|313131,86|615|FDFDFD",
    个人名片 = "99|345|FFFFFF,77|202|313131,85|476|FFFFFF",
    -- 好友列表 = "100|349|313131",
    好友列表 = "114|350|313131,77|202|FFFFFF,86|477|FFFFFF",
    访问基建 = "1475|235|FFFFFF",
    今日参与交流已达上限 = "1816|127|FFFFFF,1844|131|FFFFFF,1838|125|040404,1848|126|040404",
    右确认 = { 1260, 743 },
    右右确认 = { 1750, 743 },
    中右确认 = { 970, 743 },
    左取消 = { 671, 746 },
    解锁线索 = "864|940|FFFFFF",
    解锁线索左 = "583|940|FFFFFF",
    线索库列表 = { { 1645, 470 } },
    解锁线索上 = { 1008, 900 },
    线索布置展开 = "1277|55|FFFFFF,1282|55|FFFFFF,1289|55|FFFFFF",
    线索布置白列表 = {
        "148|231|FFFFFF", "451|339|FFFFFF", "753|202|FFFFFF", "1078|268|FFFFFF",
        "570|665|FFFFFF", "880|578|FFFFFF", "229|612|FFFFFF",
    },
    线索布置数字右列表 = {
        "1417|128|FFFFFF", "1499|131|FFFFFF", "1575|130|FFFFFF", "1651|131|FFFFFF",
        "1730|131|FFFFFF", "1806|130|FFFFFF", "1883|131|FFFFFF",
    },
    线索布置左列表 = {
        "240|216|FF6801", "543|322|FF6801", "844|186|FF6801", "1173|255|FF6801",
        "663|648|FF6801", "972|567|FF6801", "319|599|FF6801",
    },
    线索布置列表 = {
        "665|216|FF6801", "968|322|FF6801", "1269|186|FF6801", "1598|255|FF6801",
        "1088|648|FF6801", "1397|567|FF6801", "744|599|FF6801",
    },
    线索布置5 = { 960, 648 },
    全部 = "1285|43|FFFFFF",
    全部收取 = "1499|1013|FFFFFF",
    线索传递右白2 = "1812|991|E5E5E5",
    线索传递右白 = "1812|991|EFEFEF",
    线索传递左白 = { 1682, 1019 },
    线索传递橙框 = "1516|365|D5B198,1534|368|D5B198,1549|391|D5B198,1552|420|D5B198,1519|418|D5B198",
    今日登录列表 = {
        "1222|245|0075A9", "1216|470|0075A9", "1222|686|0075A9", "1216|908|0075A9",
    },
    线索列表 = { "595|267|424242" },
    线索按下列表 = { "627|244|DB6442" },
    线索传递数字重复 = "565|568|434343",
    线索传递返回 = "1888|73|FFFFFF",
    线索传递数字列表 = {
        "142|127|FFFFFF", "220|130|FFFFFF", "298|130|FFFFFF", "376|130|FFFFFF",
        "453|130|FFFFFF", "532|130|FFFFFF", "607|130|FFFFFF", "71|130|FFFFFF",
    },
    传递列表 = { { 1791, 260 }, { 1791, 472 }, { 1791, 720 }, { 1791, 932 } },
    信用奖励有 = "1794|254|FFFFFF,1835|239|7D0022",
    接收线索有 = "1796|458|FFFFFF,1833|396|7D0022",
    接收线索白 = "1795|396|FFFFFF,1795|409|FFFFFF",
    线索传递 = "1764|589|FFFFFF,1764|609|FFFFFF,1757|869|FFFFFF,1757|990|FFFFFF",
    信用奖励领取 = "1286|864|0075A8",
    未达线索上限 = "521|914|E9E9E9",
    信用奖励返回 = "960|948|E9E9E9",
    会客厅有 = "1797|245|FF6802",
    -- 342 is choose to avoid tapping 干员 if 进驻信息选中
    会客厅 = { 1523, 342 },
    办公室 = "1650|588|4E4E4E",
    训练室 = "1740|699|FFFFFF",
    无人机加速最小 = "889|484|1A1A19",
    无人机加速最大 = "1444|473|535353",
    无人机加速加 = "1323|473|313131",
    无人机加速确定 = { 1431, 876 },
    制造站加速 = "1831|783|FFFFFF,1807|809|FFFFFF,1858|807|FFFFFF,1832|833|FFFFFF",
    制造站进度 = { 474, 811 },
    建造模式开 = "304|304|F5F5F5",
    排班调整提示 = "660|391|FFFFFF,1277|422|FFFFFF",
    入驻干员右侧 = { 1881, 170 },
    筛选确认 = "1418|831|74C8F6",
    筛选未进驻 = "766|568|323232,551|568|323232",
    筛选未进驻选中 = "760|514|0097D9",
    筛选技能 = "762|281|323232,551|279|323232",
    筛选技能降序 = "593|237|FFFFFF,597|237|0090D2",
    筛选技能升序 = "593|271|FFFFFF,597|237|0090D2",
    筛选取消 = "1161|827|FFFFFF,1130|827|393939",
    筛选产出设施 = "800|568|323232,1020|568|323232",
    筛选产出设施选中 = "800|568|0077AA",
    筛选功能设施 = "1072|568|323232,1080|568|323232",
    筛选功能设施选中 = "1072|568|0077AA",
    筛选自定义设施 = "1320|568|323232,1536|568|323232",
    筛选自定义设施选中 = "1320|568|0077AA",
    筛选控制中枢 = "551|670|323232,766|670|323232",
    筛选控制中枢选中 = "551|670|0078AB",
    筛选生产类后勤 = "800|670|323232,1020|670|323232",
    筛选生产类后勤选中 = "800|670|0078AB",
    筛选功能类后勤 = "1072|670|323232,1080|670|323232",
    筛选功能类后勤选中 = "1072|670|0078AB",
    筛选恢复类后勤 = "1320|670|323232,1536|670|323232",
    筛选恢复类后勤选中 = "1320|670|0078AB",
    撤下干员 = "1641|78|7D0022",
    心情 = { 902, 249 },
    心情降序 = "843|272|FFFFFF,846|237|0090D2",
    技能 = { 1443, 33 },
    当前房间入住信息 = "1791|1|FFFFFF",
    进驻第一人 = { 1800, 300 },
    进驻第一人左 = { 1303, 300 },
    基建灯泡蓝 = "1800|135|FFFFFF",
    基建灯泡蓝2 = "1800|203|FFFFFF",
    基建灯泡灰 = "1800|135|ECEBEC",
    基建灯泡灰2 = "1800|203|ECEBEC",
    待办事项 = "1910|1040|2C2E2C",
    回坑返回 = "1860|72|C2C2C2,1842|75|595959,1861|48|595959,1861|97|595959,1888|72|595959",
    -- 活动公告返回 = "1854|63|595959,1854|83|BFBFBF,1826|71|595959,1884|71|595959",
    活动公告返回 = "1804|105|BFBFBF,1780|103|595959,1803|85|595959,1810|130|595959",
    签到返回 = "1802|85|595959,1774|99|595959,1804|114|BFBFBF,1827|91|595959",
    签到返回黄 = "1654|595|F4B800,1768|865|F4B800",
    活动签到返回 =
    "1850|151|C0C0C0,1814|155|595959,1880|152|595959,1849|122|595959,1853|185|595959",
    九色鹿签到 = "1487|853|000000,1404|831|5F1613,1457|807|9B2017,1574|817|731A15,1607|847|000000,1484|836|260806",
    九色鹿签到返回 = "1801|151|595959,1802|181|BFBFBF,1802|208|595959",
    国庆签到返回 = "1875|150|C1C1C1,1861|151|595959,1874|130|595959,1902|161|595959",
    战备支援签到返回 = "1830|74|595959,1884|70|595959,1864|90|595959",
    --战备支援签到="1624|915|069AD4,1742|951|E7F6FB",
    战备支援签到 = "1624|915|069AD4",
    抽签返回 = "1804|114|BFBFBF,1848|97|595959,1879|123|595959,1820|123|595959,1851|154|595959",
    正在释放神经递质 = "0|950|E7D602",
    下载资源确认 = "1174|669|1D6485,1339|727|313131,966|725|313131,574|722|313131,579|351|313131,1344|353|313131",
    主页列表 = {
        展开 = "1631|16|494949,1631|12|1B1B1B,1570|16|494949,1571|14|1B1B1B,1630|48|FFFFFF",
        -- 首页 = {142, 120},
        -- 首页 = {142, 277}, -- 120会点到限时活动
        -- 首页 = {142, 354}, -- 120会点到限时活动
        首页 = { 139, 420 }, -- 120会点到限时活动
        干员 = { 458, 50 },
        终端 = { 804, 30 },
        基建 = { 1028, 30 },
        公开招募 = { 1464, 130 },
        采购中心 = { 1800, 130 },
        任务 = { 1631, 10 },
        好友 = { 1798, 10 },
    },
    演习券 = "1331|60|FFFFFF,1910|56|242424",
    返回 = "219|44|313131",
    返回2 = "219|44|2F2F2F",
    返回3 = "215|44|FFFFFF",
    返回4 = "215|44|F5F5F5",
    主页 = "545|21|313131,549|84|313131,259|32|313131,259|80|313131,402|56|D8D8D8",
    主页按过 = "545|21|2F2F2F,549|84|2F2F2F,259|32|2F2F2F,259|80|2F2F2F,402|56|CFCFCF",
    主页右侧 = { 960, 29 },
    提示 = "637|56|313131",
    右上角 = { 1919, 1079 },
    右下角确认 = { 1821, 1018 },
    -- 怒号光明 = "552|409|000000,411|405|000000,288|403|000000",
    -- 怒号光明 = "288|403|000000",
    怒号光明 = "79|352|000000",
    二次呼吸 = "454|421|000000",
    终端 = "138|125|313131,738|125|7D0022,1543|131|313131,188|56|313131",
    跳转 = "534|62|313131,534|62|313131,272|62|313131,137|62|313131",
    设置 = "341|43|000000,143|546|FFFFFF,143|689|FFFFFF,161|68|F5F5F5,1602|74|313131",
    面板邮件有 = "327|34|FF6801",
    用户名或密码错误 = "956|742|FFFFFF",
    确认白 = "956|742|FFFFFF",
    -- 密码不能为空 = "1216|722|FFFFFF",
    密码不能为空 = "1215|721|FFFFFF,1201|721|4F0E0E",
    账号不能为空 = "1227|645|FFFFFF",
    enter = { 1920 - 20, 1090 - 20 },
    正在加载网络配置 =
    "880|1005|010101,874|1023|000000,910|1017|757575,928|1017|636363,964|1023|3A3A3A,994|1023|000000,1030|1023|4F4F4F,1048|1035|B5B5B5,1054|1035|2E2E2E,844|1029|000000,952|1023|FEFEFE,922|1023|A4A4A4",
    网络异常稍后重试 =
    "659|446|FFFFFF,713|452|B4B4B4,743|440|FFFFFF,779|446|363636,857|452|373737,911|452|FFFFFF,941|446|FFFFFF,977|440|CCCCCC,1055|440|FFFFFF,1085|440|FFFFFF,1133|440|353535,1181|446|353535,1217|458|686868",
    源石恢复理智 = "1569|141|F3F4F0",
    药剂恢复理智取消 = "1077|145|000000,1387|154|FFFFFF,1549|154|FFFFFF",
    源石恢复理智取消 = "1531|154|000000,1444|151|FFFFFF,1057|145|FFFFFF",
    源石恢复理智不足 = "1715|127|FFFFFF,1711|802|FFD802",
    恢复理智确认 = { 1625, 845 },
    点击全部收取 = "365|1011|27A0D7,435|1011|27A0D7,328|1011|27A0D7",
    点击全部收取2 = { 279, 1037 },
    报酬合成玉已满 = "582|1027|FFFFFF",
    报酬合成玉已满2 = "1460|353|C32A36",
    排班调整确认 = "1338|1009|FFFFFF",
    作战主线章节列表 = {
        ["0"] = { 955, 500 },
        ["1"] = { 478, 500 },
        ["2"] = { 955, 500 },
        ["3"] = { 1406, 500 },
        ["4"] = { 478, 500 },
        ["5"] = { 955, 500 },
        ["6"] = { 478, 500 },
        ["7"] = { 955, 500 },
        ["8"] = { 1406, 500 },
        ["9"] = { 478, 500 },
        ["10"] = { 955, 500 },
        ["11"] = { 1406, 500 },
    },
    插曲列表 = {
        ["CW"] = { 79, 840 },
    },
    别传列表 = {
        ["GT"] = { 79, 210 },
    },
    滴水湖周边 = { 1440, 585 },
    作战列表 = {
        ["STOP"] = { 0, 0 },
        ["EXIT"] = { 0, 0 },
        ["RET"] = { 0, 0 },
        ["RETURN"] = { 0, 0 },
        ["BREAK"] = { 0, 0 },
        上一次 = { 0, 0 },
        ["SYC"] = { 0, 0 },
        -- 积水潮窟 = {1432, 177},
        当期委托 = { 1432, 177 },
        龙门外环 = { 1445, 389 },
        龙门市区 = { 1469, 553 },
        切尔诺伯格 = { 1456, 690 },
        长期委托1 = { 1800, 397 },
        长期委托2 = { 1800, 541 },
        长期委托3 = { 1800, 697 },
        长期委托4 = { 1800, 811 },
        -- 废弃矿区 = {1419, 929},
        -- 大骑士领郊外 = {1445, 1040},

        -- 小号没打到后面，标识不正确，只能作点击
        ["PR-A-1"] = "588|638|000000,1193|356|000000,1330|385|FFFFFF,727|671|FFFFFF",
        ["PR-B-1"] = "663|637|000000,1349|342|000000,1352|367|FFFFFF,675|662|FFFFFF",
        ["PR-C-1"] = "654|599|000000,1324|364|000000,670|624|FFFFFF,1328|389|FFFFFF",
        ["PR-D-1"] = "694|627|000000,1334|370|000000,1334|405|FFFFFF,697|649|FFFFFF",
        ["AP-1"] =
        "242|829|000000,657|757|000000,958|583|000000,1200|411|000000,1357|238|000000,1312|436|FFFFFF,1062|615|FFFFFF",
        ["LS-1"] = "388|829|000000,774|798|000000,1099|699|000000,1359|570|000000,1527|408|000000,1603|226|000000",
        -- 真标识
        ["LS-0"] = "382|858|FFFFFF,265|831|000000,387|831|000000",
        ["AP-0"] = "348|843|FFFFFF,352|831|000000,238|827|000000,346|856|FFFFFF",
        ["PR-A-0"] = "735|652|FFFFFF,727|641|000000,735|680|FFFFFF,573|641|000000",
        ["PR-B-0"] = "669|638|000000,677|654|FFFFFF,527|636|000000,675|676|FFFFFF",
        ["PR-C-0"] = "666|595|000000,672|612|FFFFFF,511|597|000000,672|636|FFFFFF",
        ["PR-D-0"] = "689|628|000000,693|646|FFFFFF,537|626|000000,699|671|FFFFFF",


        ["HD-1"] = { 960, 642 },
        ["HD-2"] = { 960, 642 },
        ["HD-3"] = { 960, 351 },
        ["HD-4"] = { 960, 549 },
        ["HD-5"] = { 960, 642 },
        ["HD-6"] = { 960, 642 },
        ["HD-7"] = { 960, 552 },

        ["HD-EX-1"] = { 570, 534 },
        ["HD-EX-2"] = { 1000, 336 },
        ["HD-EX-3"] = { 1333, 339 },
        ["HD-EX-4"] = { 1620, 339 },
        ["HD-EX-5"] = { 1620, 729 },
        ["HD-EX-6"] = { 1333, 729 },
        ["HD-EX-7"] = { 1000, 729 },
        ["HD-EX-8"] = { 1333, 534 },

        ["CW-6"] = { 960, 603 },
        ["GT-5"] = { 1270, 570 },

        ["0-1"] = { 960, 500 },
        ["0-3"] = { 960, 500 },
        ["0-5"] = { 960, 500 },
        ["0-6"] = { 960, 500 },
        ["0-8"] = { 960, 500 },
        ["0-9"] = { 960, 500 },
        ["0-10"] = { 960, 500 },
        ["0-11"] = { 960, 500 },
        ["0-2"] = { 960, 650 },
        ["0-7"] = { 960, 650 },
        ["0-4"] = { 960, 350 },
        ["1-1"] = { 960, 500 },
        ["1-2"] = { 960, 500 },
        ["1-6"] = { 960, 500 },
        ["1-9"] = { 960, 500 },
        ["1-11"] = { 960, 500 },
        ["1-12"] = { 960, 500 },
        ["1-3"] = { 960, 650 },
        ["1-4"] = { 960, 650 },
        ["1-10"] = { 960, 650 },
        ["1-5"] = { 960, 650 },
        ["1-7"] = { 960, 350 },
        ["1-8"] = { 960, 350 },
        ["2-1"] = { 960, 650 },
        ["S2-1"] = { 960, 650 },
        ["S2-4"] = { 960, 650 },
        ["2-3"] = { 960, 650 },
        ["S2-6"] = { 960, 650 },
        ["S2-7"] = { 960, 650 },
        ["2-5"] = { 960, 650 },
        ["2-6"] = { 960, 650 },
        ["2-7"] = { 960, 650 },
        ["S2-8"] = { 960, 650 },
        ["S2-9"] = { 960, 650 },
        ["S2-12"] = { 960, 650 },
        ["2-10"] = { 960, 650 },
        ["2-2"] = { 960, 480 },
        ["S2-2"] = { 960, 480 },
        ["S2-3"] = { 960, 480 },
        ["2-4"] = { 960, 480 },
        ["S2-5"] = { 960, 480 },
        ["2-8"] = { 960, 480 },
        ["2-9"] = { 960, 480 },
        ["S2-11"] = { 960, 480 },
        ["S2-10"] = { 960, 300 },
        ["3-1"] = { 960, 530 },
        ["3-2"] = { 960, 530 },
        ["3-3"] = { 960, 530 },
        ["S3-1"] = { 960, 800 },
        ["S3-2"] = { 960, 800 },
        ["3-4"] = { 960, 630 },
        ["3-5"] = { 960, 630 },
        ["3-6"] = { 960, 630 },
        ["S3-3"] = { 960, 630 },
        ["S3-4"] = { 960, 630 },
        ["S3-5"] = { 960, 630 },
        ["S3-6"] = { 960, 630 },
        ["S3-7"] = { 960, 630 },
        ["3-7"] = { 960, 460 },
        ["3-8"] = { 960, 350 },
        ["S4-7"] = { 960, 230 },
        ["4-5"] = { 960, 360 },
        ["4-8"] = { 960, 360 },
        ["S4-8"] = { 960, 360 },
        ["S4-9"] = { 960, 360 },
        ["S4-10"] = { 960, 360 },
        ["4-1"] = { 960, 500 },
        ["4-3"] = { 960, 500 },
        ["4-4"] = { 960, 500 },
        ["4-6"] = { 960, 500 },
        ["4-7"] = { 960, 500 },
        ["4-9"] = { 960, 500 },
        ["4-10"] = { 960, 500 },
        ["4-2"] = { 960, 670 },
        ["S4-1"] = { 960, 670 },
        ["S4-3"] = { 960, 670 },
        ["S4-4"] = { 960, 650 },
        ["S4-5"] = { 960, 650 },
        ["S4-6"] = { 960, 650 },
        ["S4-2"] = { 960, 800 },
        ["5-1"] = { 960, 600 },
        ["5-2"] = { 960, 470 },
        ["5-3"] = { 960, 470 },
        ["5-5"] = { 960, 470 },
        ["S5-1"] = { 960, 670 },
        ["S5-2"] = { 960, 670 },
        ["S5-5"] = { 960, 700 },
        ["S5-6"] = { 960, 700 },
        ["S5-7"] = { 960, 700 },
        ["S5-8"] = { 960, 700 },
        ["S5-9"] = { 960, 700 },
        ["5-4"] = { 960, 600 },
        ["5-6"] = { 960, 380 },
        ["5-7"] = { 960, 380 },
        ["S5-3"] = { 960, 550 },
        ["S5-4"] = { 960, 550 },
        ["5-8"] = { 960, 550 },
        ["5-9"] = { 960, 550 },
        ["5-10"] = { 960, 550 },
        ["6-1"] = { 960, 420 },
        ["6-2"] = { 960, 420 },
        ["6-3"] = { 960, 530 },
        ["6-5"] = { 960, 530 },
        ["S6-1"] = { 960, 530 },
        ["S6-2"] = { 960, 530 },
        ["6-12"] = { 960, 500 },
        ["6-14"] = { 960, 500 },
        ["6-15"] = { 960, 500 },
        ["6-16"] = { 960, 500 },
        ["6-4"] = { 960, 660 },
        ["6-9"] = { 960, 660 },
        ["6-10"] = { 960, 660 },
        ["6-11"] = { 960, 660 },
        ["S6-3"] = { 960, 660 },
        ["S6-4"] = { 960, 660 },
        ["6-8"] = { 960, 350 },
        ["7-2"] = { 960, 520 },
        ["7-3"] = { 960, 370 },
        ["7-4"] = { 960, 700 },
        ["7-5"] = { 960, 700 },
        ["7-12"] = { 960, 700 },
        ["7-14"] = { 960, 700 },
        ["S7-1"] = { 960, 700 },
        ["S7-2"] = { 960, 700 },
        ["7-6"] = { 960, 570 },
        ["7-8"] = { 960, 570 },
        ["7-11"] = { 960, 570 },
        ["7-13"] = { 960, 570 },
        ["7-15"] = { 960, 570 },
        ["7-17"] = { 960, 530 },
        ["7-18"] = { 960, 530 },
        ["7-9"] = { 960, 380 },
        ["7-10"] = { 960, 380 },
        ["7-16"] = { 960, 380 },
        ["R8-1"] = { 960, 360 },
        ["R8-2"] = { 960, 360 },
        ["R8-3"] = { 960, 360 },
        ["R8-4"] = { 960, 360 },
        ["R8-5"] = { 960, 360 },
        ["R8-6"] = { 960, 360 },
        ["R8-8"] = { 960, 360 },
        ["R8-9"] = { 960, 360 },
        ["R8-10"] = { 960, 360 },
        ["R8-11"] = { 960, 360 },
        ["R8-7"] = { 960, 240 },
        ["JT8-1"] = { 960, 530 },
        ["JT8-2"] = { 960, 530 },
        ["JT8-3"] = { 960, 530 },
        ["M8-8"] = { 960, 700 },
        ["M8-7"] = { 960, 700 },
        ["M8-6"] = { 960, 700 },
        ["9-2"] = { 960, 630 },
        ["9-3"] = { 960, 500 },
        ["9-4"] = { 960, 350 },
        ["9-5"] = { 960, 350 },
        ["9-6"] = { 960, 600 },
        ["9-7"] = { 960, 500 },
        ["9-9"] = { 960, 300 },
        ["9-10"] = { 960, 480 },
        ["9-11"] = { 960, 600 },
        ["9-12"] = { 960, 400 },
        ["9-13"] = { 960, 500 },
        ["S9-1"] = { 960, 500 },
        ["9-14"] = { 960, 650 },
        ["9-15"] = { 960, 450 },
        ["9-16"] = { 960, 570 },
        ["9-17"] = { 960, 450 },
        ["9-18"] = { 960, 330 },
        ["9-19"] = { 960, 500 },
        ["10-2"] = { 960, 622 },
        ["10-3"] = { 960, 460 },
        ["10-4"] = { 960, 460 },
        ["10-5"] = { 960, 450 },
        ["10-6"] = { 960, 450 },
        ["10-7"] = { 960, 289 },
        ["10-8"] = { 960, 450 },
        ["10-9"] = { 960, 622 },
        ["10-10"] = { 960, 450 },
        ["10-11"] = { 960, 300 },
        ["10-12"] = { 960, 630 },
        ["10-14"] = { 960, 379 },
        ["10-15"] = { 960, 532 },
        ["10-16"] = { 960, 721 },
        ["10-17"] = { 960, 721 },
        ["11-1"] = { 960, 438 },
        ["11-2"] = { 960, 645 },
        ["11-3"] = { 960, 435 },
        ["11-4"] = { 960, 438 },
        ["11-5"] = { 960, 642 },
        ["11-6"] = { 960, 433 },
        ["11-7"] = { 960, 573 },
        ["11-8"] = { 960, 435 },
        ["11-9"] = { 960, 651 },
        ["11-10"] = { 960, 282 },
        ["11-11"] = { 960, 438 },
        ["11-12"] = { 960, 438 },
        ["11-13"] = { 960, 646 },
        ["11-14"] = { 960, 282 },
        ["11-15"] = { 960, 435 },
        ["11-16"] = { 960, 603 },
        ["11-17"] = { 960, 282 },
        ["11-18"] = { 960, 282 },
        ["11-19"] = { 960, 435 },
        ["11-20"] = { 960, 603 },
        ["12-1"] = { 960, 339 },
        ["12-2"] = { 960, 630 },
        ["12-3"] = { 960, 627 },
        ["12-4"] = { 960, 459 },
        ["12-5"] = { 960, 627 },
        ["12-6"] = { 960, 453 },
        ["12-7"] = { 960, 630 },
        ["12-8"] = { 960, 624 },
        ["12-9"] = { 960, 624 },
        ["12-10"] = { 960, 462 },
        ["12-11"] = { 960, 759 },
        ["12-12"] = { 960, 462 },
        ["12-13"] = { 960, 630 },
        ["12-14"] = { 960, 459 },
        ["12-15"] = { 960, 459 },
        ["12-16"] = { 960, 321 },
        ["12-17"] = { 960, 324 },
        ["12-18"] = { 960, 546 },
        ["12-19"] = { 960, 546 },
        ["12-20"] = { 960, 546 },

        ["13-2"] = { 960, 531 },
        ["13-3"] = { 960, 714 },
        ["13-4"] = { 960, 462 },
        ["13-5"] = { 960, 609 },
        ["13-6"] = { 960, 501 },
        ["13-7"] = { 960, 372 },
        ["13-8"] = { 960, 675 },
        ["13-10"] = { 960, 606 },
        ["13-11"] = { 960, 489 },
        ["13-12"] = { 960, 693 },
        ["13-13"] = { 960, 417 },
        ["13-14"] = { 960, 498 },
        ["13-15"] = { 960, 363 },
        ["13-16"] = { 960, 597 },
        ["13-17"] = { 960, 429 },
        ["13-18"] = { 960, 684 },
        ["13-19"] = { 960, 684 },
        ["13-20"] = { 960, 684 },
        ["13-21"] = { 960, 489 },
    },
    主题曲界面 = "98|0|000000",
    主题曲 = "357|963|ECECEC",
    插曲界面 = "1787|68|313131",
    插曲 = "594|963|ECECEC",
    别传界面 = "1787|68|313131",
    别传 = "830|1003|4F4F4F",
    资源收集 = "1077|963|ECECEC",
    每周部署 = "1323|963|ECECEC",
    集成战略 = "1555|963|ECECEC",
    -- 第9章前 TODO  未打到9章的
    -- 觉醒 = {95, 198},
    -- 幻灭 = {95, 349},
    觉醒 = { 95, 120 },
    幻灭 = { 95, 204 },
    炎国龙门 = { 460, 700 },
    乌萨斯 = { 55, 640 },
    卡西米尔 = { 175, 810 },
    汐斯塔 = { 1541, 123 },
    当前进度列表左 = { 1472, 993 },
    当前进度列表右 = { 1772, 993 },
    当前进度列表 = { -- 00
        "1781|1011|2F2F2F,1754|1013|2F2F2F,1754|1042|2F2F2F,1781|1042|2F2F2F,1767|1018|2F2F2F,1790|1011|2F2F2F,1789|1028|2F2F2F,1794|1026|2F2F2F,1793|1041|2F2F2F,1807|1041|2F2F2F,1811|1024|2F2F2F,1808|1011|2F2F2F",
        -- 01
        "1457|1018|2F2F2F,1450|1027|2F2F2F,1457|1026|2F2F2F,1463|1026|2F2F2F,1457|1035|2F2F2F,1492|1026|2F2F2F,1492|1017|2F2F2F,1486|1026|2F2F2F,1499|1026|2F2F2F,1492|1035|2F2F2F",
        -- 02
        "1464|1018|2F2F2F,1457|1026|2F2F2F,1469|1026|2F2F2F,1464|1035|2F2F2F,1464|1026|2F2F2F,1486|1011|2F2F2F,1486|1029|2F2F2F,1488|1027|2F2F2F,1487|1041|2F2F2F,1504|1042|2F2F2F,1504|1029|2F2F2F,1503|1011|2F2F2F",
        -- 03
        "1460|1017|2F2F2F,1454|1027|2F2F2F,1460|1025|2F2F2F,1466|1026|2F2F2F,1460|1035|2F2F2F,1492|1017|2F2F2F,1496|1020|2F2F2F,1486|1024|2F2F2F,1482|1031|2F2F2F,1502|1034|2F2F2F,1497|1035|2F2F2F,1503|1009|2F2F2F",
        -- 04
        "1764|1017|2F2F2F,1758|1027|2F2F2F,1764|1027|2F2F2F,1769|1027|2F2F2F,1764|1036|2F2F2F,1797|1017|2F2F2F,1805|1019|2F2F2F,1796|1033|2F2F2F,1784|1031|2F2F2F",
        -- 05
        "1476|958|FFFFFF,1497|1014|FFFFFF,1498|1033|FFFFFF,1482|1032|FFFFFF", -- 06
        "1460|1019|2F2F2F,1460|1036|2F2F2F,1454|1025|2F2F2F,1459|1025|2F2F2F,1465|1027|2F2F2F,1494|1019|2F2F2F,1503|1020|2F2F2F,1494|1033|2F2F2F,1479|1031|2F2F2F",
        -- 07
        "1460|1017|2F2F2F,1454|1025|2F2F2F,1460|1025|2F2F2F,1465|1025|2F2F2F,1458|1035|2F2F2F,1480|1011|2F2F2F,1502|1013|2F2F2F,1493|1033|2F2F2F,1504|1019|2F2F2F",
        -- 08
        "1454|1027|2F2F2F,1459|1027|2F2F2F,1467|1027|2F2F2F,1459|1019|2F2F2F,1461|1035|2F2F2F,1483|1019|2F2F2F,1490|1020|2F2F2F,1479|1036|2F2F2F,1503|1035|2F2F2F,1495|1041|2F2F2F",
        -- 09
        "1651|1029|FFFFFF,1625|1027|FFFFFF,1599|1027|FFFFFF,1644|1011|FFFFFF",
        -- 10
        "1492|1021|313131,1498|1030|FFFFFF,1480|1035|313131,1501|1036|313131,1459|1024|313131",
        -- 11
        "1459|1014|FFFFFF,1453|1026|313131,1483|1026|313131,1472|1026|FFFFFF,1498|1027|FFFFFF",
        -- 12
        "1488|1014|FFFFFF,1467|1014|FFFFFF,1476|1026|313131,1459|1032|313131",
        -- 13
        "1463|1014|FFFFFF,1478|1014|FFFFFF,1477|1040|FFFFFF,1495|1041|FFFFFF,1615|1013|FFFFFF,1641|1026|FFFFFF,1636|1041|FFFFFF,1472|1026|313131"
    },
    -- 登录
    start黄框 = "958|985|FFD802,995|1021|FFD802,958|1057|FFD802,924|1021|FFD802,958|1011|FFD802",
    start黄框暗 = "958|985|AF9401,995|1021|AF9401,958|1057|AF9401,924|1021|AF9401,958|1011|AF9401",
    开始唤醒 = "861|734|555555,1071|804|565656,1158|800|E9E9E9",
    账号登录 = "668|728|555555,920|728|555555,987|727|555555,1258|728|565656,1085|632|211818",
    -- 登录 = "758|848|353535,1164|885|353535,960|1070|060606",
    登录 = "758|848|353535,1164|885|353535,960|1070|060606",
    手机验证码登录 = "1523|1037|246684,1717|1036|246684",
    左上角 = { 0, 0 },
    左上角返回 = "75|51|282828",
    账号左侧 = { 672, 652 },
    账号 = { 1045, 652 },
    密码 = { 1045, 727 },
    -- 面板 = "158|526|323232,172|520|323232,150|517|FFFFFF,150|534|FFFFFF,160|534|FFFFFF",
    面板 = "158|526|323232,172|520|323232,151|534|FFFFFF,223|543|323232,196|525|323232",
    -- 基建
    进驻总览 = "234|213|FFFFFF,231|311|FFFFFF,271|213|FFFFFF,269|154|FFFFFF,274|57|313131",
    基建左侧列表 = {
        { 200, 520 }, { 440, 520 }, { 680, 520 }, { 80, 640 }, { 320, 640 }, { 559, 640 },
        { 200, 760 }, { 440, 760 }, { 680, 760 },
    },
    基建列表 = {
        { 200, 520 }, { 440, 520 }, { 680, 520 },                   -- 左侧1行
        { 80,  640 }, { 320, 640 }, { 559, 640 },                   -- 左侧2行
        { 200,  760 }, { 440, 760 }, { 680, 760 },                  -- 左侧3行
        { 1207, 317 },                                              -- 控
        { 1047, 454 }, { 1168, 574 }, { 1047, 694 }, { 1168, 814 }, -- 宿
        { 1523, 342 },                                              -- 会
        { 1638, 516 },                                              -- 加
        { 1638, 635 },                                              -- 办
    },
    控制中枢 = { 1207, 317 },
    进驻信息 = "76|412|FFFFFF,717|28|2E2E2E",
    进驻信息选中 = "76|412|000000,717|28|171717",
    干员选择列表 = {
        { 746,  286 }, { 746, 718 }, { 950, 286 }, { 950, 718 }, { 1169, 286 }, { 1169, 718 },
        { 1406, 286 }, { 1406, 718 }, { 1620, 286 }, { 1620, 718 }, { 1832, 286 },
        { 1832, 718 },
    },
    制造站收取 = { 1700, 1000 },
    -- 作战
    开始行动蓝 = { 1722, 990 },
    开始行动红按钮 = "1753|552|C1470B",
    开始行动红 = "1885|54|7D0000,1876|55|FFFFFF",
    代理失误放弃行动 =
    "586|738|FFFFFF,577|743|FFFFFF,578|775|FFFFFF,587|776|FFFFFF,599|775|FFFFFF,630|752|FFFFFF,661|753|FFFFFF,653|762|FFFFFF,644|736|FFFFFF,3|250|E5E5CD,1912|247|E8E8E8,1909|811|6D0A0A,15|805|313129",
    接管作战 = "528|996|313131,523|1004|FFFFFF,536|997|FFFFFF,526|1016|313131,534|1013|FFFFFF,544|1021|313131",
    -- 任务
    理智兑换取消 =
    "398|810|191717,408|810|FFFFFF,483|790|1F1F17,658|770|0C0C0C,893|280|FFFFFF,988|165|FFFFFF,1068|210|FFFFFF,1073|305|FFFFFF,1897|407|E8E8E8",
    未能同步到相关战斗记录 =
    "624|492|FEFEFE,666|474|333333,684|480|373737,702|480|FFFFFF,732|480|393939,768|504|373737,792|504|393939,846|504|414141,930|522|383838,984|486|363636,1020|486|FFFFFF,1068|480|363636,1140|486|FFFFFF,1188|492|353535,1194|492|343434,1218|492|E1E1E1",
    -- 我知道了 = "903|816|E2E2E2,910|819|A5A5A5,918|825|787878,921|809|757575,936|818|3E3E3E,935|814|2C2C2C,446|783|060606,1476|780|060606,55|1026|FFFFFF,46|1041|FFFFFF,1010|812|989898,998|832|D8D8D8",
    删除缓存返回 = "65|40|ABABAB,77|34|343434,95|34|A7A7A7,125|46|AEAEAE,149|52|222222,161|46|393939",
    登入错误 =
    "965|765|FFFFFF,803|460|393939,845|454|363636,845|454|363636,863|454|363636,875|454|353535,875|454|353535,881|454|FFFFFF,1001|454|353535,1085|448|FEFEFE,1157|442|343434,917|526|FFFFFF,995|532|C0C0C0,977|556|3A3A3A",
    战斗记录未能同步返回 =
    "658|739|FFFFFF,732|399|333333,816|399|363636,864|399|E8E8E8,924|399|333333,990|405|B4B4B4,1026|405|333333,1062|405|8B8B8B,1128|411|ECECEC,1176|411|ECECEC,1206|405|363636,882|481|F6F6F6,912|481|F7F7F7,972|499|333333,996|481|333333",
    -- 返回确认界面 = "1909|254|E8E8E8",
    返回确认界面 = "1911|253|E8E8E8,1839|294|E8E8E8,1772|327|E8E8E8,1707|361|E8E8E8",
    -- 是否确认离开基建 = "947|453|333333,745|460|333333",
    -- 是否确认离开基建 = "947|453|333333,1101|440|333333",
    是否确认离开基建 = "947|453|333333,1095|465|333333",
    返回确认 = function()
        return findOne("返回确认界面") and findOne("是否确认离开基建")
    end,
    -- 是否返回好友列表 = "1114|476|313131,1091|484|313131,1083|481|313131,1005|484|313131,973|484|313131,945|482|313131,881|488|313131,765|492|313131,803|476|313131",
    是否返回好友列表 =
    "1114|476|313131,1090|484|313131,1083|481|313131,1005|484|313131,973|484|313131,945|482|313131",
    返回确认2 = function()
        return findOne("返回确认界面") and findOne("是否返回好友列表")
    end,
    是否退出游戏 = "1105|495|313131,1083|493|313131,1038|483|313131,997|481|313131,997|497|313131,927|477|313131",
    返回确认3 = function()
        return findOne("返回确认界面") and findOne("是否退出游戏")
    end,
    代理指挥开1 = "1601|897|FFFFFF",
    代理指挥开活动 = "1629|870|F5F5F5",
    代理指挥开活动2 = "1666|852|786F65",
    代理指挥开 = function()
        return findAny({
            "代理指挥开1", "代理指挥开活动", "代理指挥开活动2",
        })
    end,
    -- "1629|870|F5F5F5,754|304|A99F89"
    -- 代理指挥开 = function() return findOne("代理指挥开静止", 0.5) end,
    收取所有邮件 = { 1628, 989 },
    邮件信封 = "320|52|313131,377|53|313131,377|91|313131,337|80|313131",
    源石理智兑换次数上限 =
    "1913|923|FDFDFD,1909|87|FFFFFF,1325|333|CED0D6,1343|529|898989,1325|568|FEFEFE,1345|556|FBFBFB,1378|566|F3F3F3,1347|591|898989,1554|683|898989,1339|672|898989,1524|672|898989,1593|679|898989",
    源石不足 =
    "1309|548|898989,1464|463|898989,1344|598|FBFBFB,1349|608|FCFCFC,1483|687|898989,1474|583|FDFDFD,965|254|676767,964|255|FCFCFC,1428|474|F9F9F9,1402|474|898989,252|345|FFFFFF,922|904|C5C5CD",
    跳过剧情2 = "1812|1039|000000,1818|78|FFFFFF,822|1048|000000",
    跳过剧情 = "1820|79|FFFFFF",
    跳过剧情确认 = { 1197, 547 },
    -- "1192|688|1C1A16"
    -- 两倍速 = {1650, 75},
    两倍速 = "1657|102|FFFFFF",
    资源收集列表 = {
        { -166, 200 }, { 142, 200 }, { 450, 200 }, { 767, 200 }, { 960, 200 }, { 1156, 200 },
        { 1469, 200 }, { 1770, 200 }, { 2071, 200 },
    },
    资源收集最左列表 = {
        { 354,  200 }, { 656, 200 }, { 955, 200 }, { 1294, 200 }, { 1594, 200 }, { 1882, 200 },
        { 2194, 200 }, { 2494, 200 }, { 2794, 200 },
    },
    资源收集最右列表 = {
        { -856, 200 }, { -556, 200 }, { -256, 200 }, { 41, 200 }, { 320, 200 }, { 656, 200 },
        { 955,  200 }, { 1244, 200 }, { 1556, 200 },
    },
}

--[[
如何实现全分辨率支持：
节点精灵提供OCR、图像特征搜索，但速度较慢。
autojs提供OCR、图像匹配、速度没测过。OCR看现有明日方舟辅助实现耗时在1到3秒，和节点精灵同一量级。
本工具致力于低等待耗时实现，因此采用多点找色方案，保证所有point围绕着某个中心进行缩放。
开发过程中测试3种分辨率 720x1280、1920x1080、2400x1080。
--]]
center = {
    前往下一轮 = "right_center",
    就这么决定了 = "center_center",
    继续营业 = "right_center",
    营业奖励 = "center_center",
    风情街 = "right_center",
    神州返回 = "center_center",
    神州领取1 = "center_center",
    神州领取2 = "center_center",
    端午签到中 = "center_center",
    端午签到返回 = "center_center",
    专项调查标识 = "right_center",
    专项调查启动 = "right_center",
    孤星 = "center_center",
    未来序曲 = "center_center",
    未来序曲领取 = "center_center",
    未来序曲领取2 = "center_center",
    祈愿牌确认 = "center_center",
    祈愿牌返回 = "center_center",
    用餐 = "center_center",
    红包 = "center_center",
    艺术评论 = "right_center",
    产业合作洽谈会 = "center_center",
    产业合作洽谈会策略 = "center_center",
    B服安全验证320DPI = "center_center",
    B服安全验证提交320DPI = "center_center",
    B服安全验证失败320DPI = "center_center",
    傀影与猩红孤钻 = "center_center",
    月饼确认 = "center_center",
    月饼右 = "center_center",
    月饼 = "center_center",
    寻访右 = "center_center",
    车友交流2 = "center_center",
    车友交流1 = "center_center",
    车友交流 = "right_bottom",
    战略助战确认 = "center_center",
    战略助战 = "right_top",
    剿灭记录确认 = "center_bottom",
    主题曲已开放 = "center_center",
    注册协议 = "center_center",
    注册协议1 = "center_center",
    注册协议2 = "center_center",
    防沉迷 = "center_center",
    剿灭接管作战 = "center_center",
    战略等级125 = "right_top",
    阿米娅右列表 = "right_center",
    可露希尔右列表 = "right_center",
    战略难度列表 = "right_center",
    战略等级 = "right_top",
    战略等级入口 = "right_top",
    战略源石锭 = "right_top",
    幕后筹备升级有 = "right_center",
    幕后筹备升级无 = "right_center",
    幕后筹备升级不 = "right_center",
    幕后筹备升级中1列表 = "center_center",
    幕后筹备升级中2列表 = "center_center",
    幕后筹备升级中3列表 = "center_center",
    幕后筹备升级右列表 = "right_center",
    进驻总览控制中枢 = "right_center",
    进驻总览会客厅 = "right_center",
    全权委托确认使用 = "right_center",
    全权委托 = "right_center",
    作战主页列表1 = "center_center",
    作战主页列表2 = "center_center",
    幻觉范围 = "center_center",
    凋零残响 = "center_center",
    断罪 = "center_center",
    怪猎联动放入素材 = "center_center",
    怪猎联动炼金 = "center_center",
    怪猎联动返回 = "center_center",
    怪猎联动炼金值不足 = "center_center",
    面板活动 = "right_center",
    活动商店支付 = "center_center",
    活动商店 = 'center_center',
    活动任务 = 'center_center',
    活动导航EX = "center_center",
    活动导航S = "center_center",
    活动导航0 = "center_center",
    活动导航1 = "right_center",
    活动导航2 = "center_center",
    活动导航3 = "center_center",
    活动导航4 = "center_center",
    活动商店最多 = "center_center",
    故事界面 = "center_center",
    故事入口 = "center_center",
    确认提交事相碎片 = "center_center",
    事相碎片不足 = "right_center",
    面板活动2 = "right_center",
    活动2商店 = "center_center",
    活动2商店支付 = "center_center",
    活动2导航0 = "center_center",
    活动2导航1 = "center_center",
    活动2导航2 = "right_center",
    活动2商店最多 = "center_center",
    理智药清空选择 = "center_center",
    理智药到期时间范围 = "center_center",
    战略第一行商品范围 = "center_center",
    战略第二行商品范围 = "center_center",
    战略商品列表 = "center_center",
    captcha_area = "center_center",
    captcha_left_area = "center_center",
    captcha_area_btn = "center_center",
    bilibili_account_switch = "right_top",
    制造站最多 = "right_center",
    制造站执行更改 = "right_center",
    制造站补货通知 = "right_top",
    设施列表第二个干员 = "right_bottom",
    开采协力 = "right_bottom",
    龙门商法 = "right_bottom",
    放弃行动 = "center_center",
    剿灭放弃行动 = "center_center",
    代理指挥未解锁 = "right_top",
    每周报酬合成玉 = "center_center",
    投币提示采样列表 = "right_center",
    第一层上一个 = "center_center",
    第一层下一个 = "center_center",
    适龄提示 = "center_center",
    查看谢幕表 = "center_top",
    面板赠送一次范围 = "right_center",
    暂停中 = "center_center",
    寻访一次 = "center_center",
    赠送一次 = "center_center",
    -- 面板赠送一次 = "right_center",
    感谢典点击领取 = "center_center",
    开技能 = "center_center",
    诡意行商离开 = "right_center",
    战略二技能 = "left_center",
    我知道了 = "center_center",
    获得物资 = "center_center",
    保持配音 = "center_center",
    保持配音确定 = "center_center",
    资源下载确定 = "center_center",
    成功通过 = "left_bottom",
    诡意行商确认投资 = "center_center",
    诡意行商投资入口 = "center_center",
    诡意行商投币 = "center_center",
    诡意行商投资 = "center_center",
    不期而遇第二选项 = "right_center",
    不期而遇第三选项 = "right_center",
    部署位意外 = "center_center",
    部署位与虫为伴 = "center_center",
    部署位死斗 = "center_center",
    部署位礼炮小队 = "center_center",
    部署位驯兽小屋 = "center_center",
    进入 = "right_bottom",
    进入界面 = "right_bottom",
    攻击范围 = "left_center",
    不要了范围 = "center_center",
    编队 = 'right_bottom',
    偏执的1 = "center_top",
    偏执的2 = "center_top",
    确认招募 = 'right_bottom',
    傀影 = "left_center",
    放弃探索 = "right_bottom",
    放弃本次探索 = "right_bottom",
    干员列表 = 'right_bottom',
    干员费用够列表 = 'right_bottom',
    生命值 = "right_center",
    快捷编队 = 'right_top',
    第一层作战1 = 'center_center',
    第一层不期而遇1 = "left_center",
    第一层从下方来 = "center_center",
    第一层不期而遇1列表 = "center_center",
    第一层不期而遇2列表 = "center_center",
    第一层不期而遇1入口列表 = "center_center",
    第一层不期而遇2入口列表 = "center_center",
    第一层作战2 = 'right_center',
    第一层不期而遇2 = 'right_center',
    第一层作战 = "right_center",
    -- 第一层不期而遇1列表 = "center_center",
    -- 第一层不期而遇2列表 = "center_center",

    指挥等级 = "left_top",
    放弃招募 = "right_bottom",
    招募说明关闭 = "center_center",
    初始招募 = "center_top",
    战略确认 = "center_bottom",
    近卫招募列表 = "left_center",
    近卫招募券 = 'center_center',
    辅助招募券 = 'center_center',
    医疗招募券 = 'center_center',
    进入古堡 = 'right_center',
    取长补短 = "center_center",
    战略进度条采样列表 = "center_top",
    继续探索 = "right_center",
    常规行动1 = "right_center",
    常规行动2 = "right_center",
    进入主题 = "right_center",
    开始作业 = "center_center",
    限时开放许可 = "center_center",
    限时幸运签 = "center_center",
    限时幸运签抽取 = "center_center",
    限时幸运签列表 = "center_center",
    感谢庆典点击领取 = "center_center",
    基建收获线索提示 = "right_top",
    剿灭说明 = 'center_center',
    账号管理 = "right_bottom",
    退出登录 = "center_center",
    退出登录2 = "center_center",
    线索传递有好友 = "center_center",
    赤金站 = "right_center",
    经验站 = "right_center",
    源石站 = "right_center",
    芯片站 = "right_center",
    芯片站已完成 = "right_center",
    芯片站选经验 = "right_center",
    芯片站选赤金 = "right_center",
    返还规则 = "right_bottom",
    线索布置展开 = "right_top",
    未解锁第9章 = "left_center",
    单选确认框 = "center_center",
    上一次 = "center_bottom",
    接收线索 = "right_top",
    接收线索第一个 = "right_top",
    筛选横线 = "left_top",
    信用交易所横线 = "left_top",
    点击全部收取2 = "left_bottom",
    进驻总览底部采样列表 = "right_bottom",
    作战主线章节列表 = "center_center",
    干员空隙列表 = "left_center",
    隐藏 = "right_bottom",
    好友采样列表 = "center_center",
    干员选中列表 = "left_top",
    邮件提示采样列表 = "right_top",
    线索布置白列表 = "center_center",
    线索布置数字右列表 = "right_top",
    小蓝圈 = "left_bottom",
    主页按下 = "left_top",
    主页按过 = "left_top",
    等级升 = "right_top",
    干员界面 = "right_top",
    等级采样列表 = "right_top",
    等级 = "right_top",
    升级 = "right_top",
    干员1 = "left_center",
    录像列表 = "left_center",
    报酬合成玉已满 = "left_bottom",
    报酬合成玉已满2 = "center_center",
    源石恢复理智不足 = "center_center",
    源石恢复理智 = "center_center",
    源石恢复理智取消 = "center_center",
    药剂恢复理智取消 = "center_center",
    恢复理智确认 = "center_center",
    -- 跳过剧情 = "right_top",
    跳过剧情2 = "center_center",
    跳过剧情 = "right_top",
    跳过剧情确认 = "center_center",
    两倍速 = "right_top",
    当期委托 = "center_center",
    当前委托侧边栏 = "right_center",
    切换 = "right_bottom",
    开始行动 = "right_center",
    开始行动1 = "right_center",
    开始行动2 = "right_center",
    开始行动活动 = "right_center",
    -- 开始行动活动黄 = "right_center",

    剿灭提示 = "center_center",
    二次呼吸 = "left_center",
    怒号光明 = "left_center",
    确定抽取 = "center_center",
    干员解锁进度 = "center_bottom",
    回归返回 = "center_center",
    断罪返回 = "center_center",
    活动签到返回 = "center_center",
    国庆签到返回 = "center_center",
    抽签返回 = "center_center",
    感谢庆典返回 = "center_center",
    筛选采样列表 = "right_top",
    排序 = "right_top",
    正在提交反馈至神经 = "center_bottom",
    进驻采样列表 = "right_center",
    作战列表 = "center_center",
    作战中心范围 = "center_center",
    线索搜集提示 = "right_top",
    基建右上角 = "right_top",
    控制中枢 = "center_center_maxscale",
    缩放结束 = "center_center_maxscale",
    缩放结束1 = "center_center_maxscale",
    缩放结束2 = "center_center_maxscale",
    缩放结束3 = "center_center_maxscale",
    心情采样列表 = "right_top",
    信赖采样列表 = "right_top",
    宿舍范围 = "right_center",
    宿舍标识 = "left_top",
    宿舍标识2 = "left_top",
    入驻干员底部 = "right_bottom",
    入驻干员顶部 = "right_bottom",
    入驻干员范围 = "right_center",
    入驻干员会客厅范围 = "right_center",
    入驻干员控制中枢范围 = "right_center",
    收取信用有 = "right_center",
    本次线索交流活动 = "left_top",
    无人机加速 = "center_center",
    邮件提示 = "right_top",
    邮件提示2 = "right_top",
    邮件提示3 = "right_top",
    公开招募确认蓝 = "center_center",
    公开招募取消 = "center_center",
    公开招募列表 = "center_center",
    公开招募点击列表 = "center_center",
    聘用候选人列表 = "center_center",
    立即招募列表 = "center_center",
    开包skip = "right_top",
    公开招募标签框列表 = "center_center",
    公开招募标签框范围 = "center_center",
    公开招募 = "right_top",
    公开招募箭头 = "center_center",
    公开招募标签刷新蓝 = "center_center",
    公开招募标签刷新灰 = "center_center",
    消耗一次联络机会确认 = "center_center",
    公开招募时间加 = "center_center",
    公开招募时间减 = "center_center",
    公开招募时间减2 = "center_center",
    可露希尔推荐 = "center_center",
    信用交易所 = "center_center",
    信用交易所2 = "center_center",
    收取信用 = "right_center",
    信用交易所列表 = "left_center",
    信用交易所已购列表 = "left_center",
    购买物品 = "center_center",
    购买物品面板 = "center_center",
    信用不足 = "right_center",
    干员选中 = "left_center",
    干员未选中 = "left_center",
    信赖 = "right_center",
    基建副手 = "left_center",
    基建副手简报 = "right_center",
    基建副手列表 = "center_center",
    收集全部 = "center_center",
    任务有列表 = "center_center",
    任务无列表 = "center_center",
    任务未选中列表 = "center_center",
    任务第一个 = "center_center",
    访问下位 = "right_bottom",
    访问下位橘 = "right_bottom",
    访问下位灰 = "right_bottom",
    个人名片 = "left_center",
    访问基建 = "left_center",
    今日参与交流已达上限 = "right_center",
    制造站收取 = "right_center",
    解锁线索 = "center_center",
    解锁线索左 = "center_center",
    线索库列表 = "right_center",
    解锁线索上 = "center_center",
    线索布置左列表 = "center_center",
    线索布置列表 = "center_center",
    线索布置5 = "center_center",
    全部 = "right_center",
    全部收取 = "right_center",
    线索传递右白2 = "right_center",
    线索传递右白 = "right_center",
    线索传递左白 = "right_center",
    今日登录列表 = "center_center",
    线索列表 = "left_center",
    线索按下列表 = "left_center",
    线索传递数字重复 = "left_center",
    线索传递返回 = "right_center",
    线索传递数字列表 = "left_center",
    传递列表 = "center_center",
    信用奖励有 = "right_center",
    接收线索有 = "right_center",
    接收线索白 = "right_center",
    线索传递 = "right_center",
    信用奖励领取 = "center_center",
    未达线索上限 = "center_center",
    信用奖励返回 = "center_center",
    会客厅有 = "center_center_maxscale",
    会客厅 = "center_center_maxscale",
    办公室 = "center_center_maxscale",
    训练室 = "center_center_maxscale",
    无人机加速最小 = "center_center",
    无人机加速最大 = "center_center",
    无人机加速加 = "center_center",
    无人机加速确认 = "center_center",
    制造站加速 = "right_center",
    制造站进度 = "left_bottom",
    建造模式开 = "left_top",
    基建左侧列表 = "center_center_maxscale",
    基建列表 = "center_center_maxscale",
    基建等级列表 = "center_center_maxscale",
    宿舍等级列表 = "center_center_maxscale",
    当前房间入住信息 = "right_top",
    排班调整提示 = "center_center",
    入驻干员右侧 = "right_top",
    筛选确认 = "center_center",
    筛选技能 = "center_center",
    筛选技能降序 = "center_center",
    筛选技能升序 = "center_center",
    筛选未进驻 = "center_center",
    筛选未进驻选中 = "center_center",
    筛选取消 = "center_center",
    筛选 = "right_top",
    筛选产出设施 = "center_center",
    筛选产出设施选中 = "center_center",
    筛选功能设施 = "center_center",
    筛选功能设施选中 = "center_center",
    筛选自定义设施 = "center_center",
    筛选自定义设施选中 = "center_center",
    筛选控制中枢 = "center_center",
    筛选控制中枢选中 = "center_center",
    筛选生产类后勤 = "center_center",
    筛选生产类后勤选中 = "center_center",
    筛选功能类后勤 = "center_center",
    筛选功能类后勤选中 = "center_center",
    筛选自恢复类后勤 = "center_center",
    筛选自恢复类后勤选中 = "center_center",
    撤下干员 = 'right_top',
    排班调整确认 = "right_bottom",
    确认蓝 = "right_bottom",
    副手确认蓝 = "right_bottom",
    干员选择列表 = "left_center",
    心情 = "right_top",
    技能 = "right_top",
    清空选择 = "left_bottom",
    进驻第一人 = "right_top",
    进驻第一人左 = "right_top",
    宿舍列表 = "center_center_maxscale",
    进驻信息 = "left_top",
    进驻信息选中 = "left_top",
    基建灯泡蓝 = "right_top",
    基建灯泡蓝2 = "right_top",
    待办事项 = "left_bottom",
    返回确认界面 = "right_center",
    是否确认离开基建 = "center_center",
    是否返回好友列表 = "center_center",
    是否退出游戏 = "center_center",
    回坑返回 = "center_center",
    活动公告返回 = "center_center",
    签到返回 = "center_center",
    签到返回黄 = "center_center",
    -- 右确认 = "1469,"..(1469-1920+screen.width).."_center_anisotropy",
    右确认 = "center_center",
    右右确认 = "right_center",
    中右确认 = "center_center",
    公开招募右确认 = "center_center",
    左取消 = "center_center",
    进驻总览 = "left_top",
    演习券 = "right_top",
    收取所有邮件 = "left_bottom",
    邮件信封 = "center_top",
    正在释放神经递质 = "left_bottom",
    下载资源确认 = "center_center",
    主页列表 = 'center_top',
    主页右侧 = 'center_top',
    资源收集列表 = "center_center",
    资源收集最左列表 = "left_center",
    资源收集最右列表 = "right_center",
    物资筹备列表 = "center_center",
    行动结束 = "left_bottom",
    代理指挥开1 = "right_bottom",
    代理指挥开活动 = "right_bottom",
    代理指挥开活动2 = "right_bottom",
    代理指挥开 = "right_bottom",
    开始行动蓝 = "right_bottom",
    开始行动红按钮 = "center_center",
    开始行动红 = "right_top",
    接管作战 = "center_top",
    当前进度列表 = "right_bottom",
    当前进度列表右 = "right_bottom",
    当前进度列表左 = "right_bottom",
    按下当前进度列表 = "right_bottom",
    觉醒 = "left_center",
    幻灭 = "left_center",
    主题曲 = "center_bottom_maxscalex",
    资源收集 = "center_bottom_maxscalex",
    插曲 = "center_bottom_maxscalex",
    别传 = "center_bottom_maxscalex",
    每周部署 = "center_bottom_maxscalex",
    集成战略 = "center_bottom_maxscalex",
    -- 面板作战 = "right_center",
    -- 面板作战活动上 = "right_center",
    -- 面板作战活动下 = "right_center",
    面板作战 = "center_center",
    面板作战活动上 = "right_center",
    面板作战活动下 = "right_center",
    面板采购中心 = "right_center",
    面板公开招募 = "right_center",
    面板干员寻访 = "right_center",
    面板干员 = "right_center",
    面板任务 = "right_center",
    面板基建 = "right_center",
    面板好友 = "left_center",
    面板 = "left_center",
    start黄框 = "center_bottom",
    start黄框暗 = "center_bottom",
    开始唤醒 = "center_center",
    账号登录 = "center_center",
    登录 = "center_center",
    手机验证码登录 = "right_bottom",
    账号 = "center_center",
    账号左侧 = "center_center",
    密码 = "center_center",
    密码不能为空 = "center_center",
    账号不能为空 = "center_center",
    右下角确认 = "right_bottom",
    右上角 = "right_top",
    -- TODO need test
    代理失误放弃行动 = "center_center",
    战斗记录未能同步返回 = "center_center",
}

distance = {

    ["HD-1"] = { swip_right_max, -425 },
    ["HD-2"] = { swip_right_max, -658 },
    ["HD-3"] = { swip_right_max, -893 },
    ["HD-4"] = { swip_right_max, -1124 },
    ["HD-5"] = { swip_right_max, -1635 },
    ["HD-6"] = { swip_right_max, -1839 },
    ["HD-7"] = { swip_right_max, -2076 },

    ["HD-EX-1"] = { swip_right_max, -0 },
    ["HD-EX-2"] = { swip_right_max, -0 },
    ["HD-EX-3"] = { swip_right_max, -0 },
    ["HD-EX-4"] = { swip_right_max, -0 },
    ["HD-EX-5"] = { swip_right_max, -0 },
    ["HD-EX-6"] = { swip_right_max, -0 },
    ["HD-EX-7"] = { swip_right_max, -0 },
    ["HD-EX-8"] = { swip_right_max, -0 },

    ["CW-6"] = { swip_right_max, -1349 },
    ["GT-5"] = { swip_right_max, -1535 },

    ["11-1"] = { swip_right_max, -0 },
    ["11-2"] = { swip_right_max, -209 },
    ["11-3"] = { swip_right_max, -444 },
    ["11-4"] = { swip_right_max, -715 },
    ["11-5"] = { swip_right_max, -825 },
    ["11-6"] = { swip_right_max, -1171 },
    ["11-7"] = { swip_right_max, -1602 },
    ["11-8"] = { swip_right_max, -1805 },
    ["11-9"] = { swip_right_max, -1994 },
    ["11-10"] = { swip_right_max, -2131 },
    ["11-11"] = { swip_right_max, -2302 },
    ["11-12"] = { swip_right_max, -2601 },
    ["11-13"] = { swip_right_max, -2741 },
    ["11-14"] = { swip_right_max, -2933 },
    ["11-15"] = { swip_right_max, -3063 },
    ["11-16"] = { swip_right_max, -3329 },
    ["11-17"] = { swip_right_max, -3332 },
    ["11-18"] = { swip_right_max, -3674 },
    ["11-19"] = { swip_right_max, -3674 },
    ["11-20"] = { swip_right_max, -3674 },
    ["12-1"] = { swip_right_max, -0 },
    ["12-2"] = { swip_right_max, -257 },
    ["12-3"] = { swip_right_max, -528 },
    ["12-4"] = { swip_right_max, -673 },
    ["12-5"] = { swip_right_max, -845 },
    ["12-6"] = { swip_right_max, -1024 },
    ["12-7"] = { swip_right_max, -1141 },
    ["12-8"] = { swip_right_max, -1588 },
    ["12-9"] = { swip_right_max, -1859 },
    ["12-10"] = { swip_right_max, -2002 },
    ["12-11"] = { swip_right_max, -2237 },
    ["12-12"] = { swip_right_max, -2415 },
    ["12-13"] = { swip_right_max, -2596 },
    ["12-14"] = { swip_right_max, -2775 },
    ["12-15"] = { swip_right_max, -3021 },
    ["12-16"] = { swip_right_max, -3267 },
    ["12-17"] = { swip_right_max, -3514 },
    ["12-18"] = { swip_right_max, -3514 },
    ["12-19"] = { swip_right_max, -3891 },
    ["12-20"] = { swip_right_max, -4287 },

    ["13-2"] = { swip_right_max, -315 },
    ["13-3"] = { swip_right_max, -467 },
    ["13-4"] = { swip_right_max, -705 },
    ["13-5"] = { swip_right_max, -911 },
    ["13-6"] = { swip_right_max, -1193 },
    ["13-7"] = { swip_right_max, -1956 },
    ["13-8"] = { swip_right_max, -2064 },
    ["13-10"] = { swip_right_max, -2630 },
    ["13-11"] = { swip_right_max, -2834 },
    ["13-12"] = { swip_right_max, -2935 },
    ["13-13"] = { swip_right_max, -3155 },
    ["13-14"] = { swip_right_max, -3448 },
    ["13-15"] = { swip_right_max, -3727 },
    ["13-16"] = { swip_right_max, -3840 },
    ["13-17"] = { swip_right_max, -4031 },
    ["13-18"] = { swip_right_max, -4192 },
    ["13-19"] = { swip_right_max, -4526 },
    ["13-20"] = { swip_right_max, -4841 },
    ["13-21"] = { swip_right_max, -5001 },

    ["chapter5"] = { 1000 },
    right = swip_right_max,
    left = swip_left_max,
    ["资源收集列表1"] = "right",
    ["资源收集列表9"] = "left",
    ["0-1"] = swip_right_max,
    ["0-2"] = { swip_right_max, -550 },
    ["0-3"] = { swip_right_max, -1100 },
    ["0-4"] = { swip_right_max, -1650 },
    ["0-5"] = { swip_right_max, -2200 },
    ["0-6"] = { swip_right_max, -2550 },
    ["0-7"] = { swip_right_max, -3100 },
    ["0-8"] = { swip_right_max, -3700 },
    ["0-9"] = { swip_right_max, -4050 },
    ["0-10"] = { swip_right_max, -4550 },
    ["0-11"] = { swip_right_max, -4850 },
    -- ["0-11"] = {swip_left_max},

    ["1-1"] = swip_right_max,
    ["1-2"] = { swip_right_max, -300 },
    ["1-3"] = { swip_right_max, -500 },
    ["1-4"] = { swip_right_max, -850 },
    ["1-5"] = { swip_right_max, -1200 },
    ["1-6"] = { swip_right_max, -1750 },
    ["1-7"] = { swip_right_max, -2250 },
    ["1-8"] = { swip_right_max, -2600 },
    ["1-9"] = { swip_right_max, -3150 },
    ["1-10"] = { swip_right_max, -3450 },
    ["1-11"] = { swip_right_max, -3650 },
    ["1-12"] = { swip_right_max, -4000 },
    -- ["1-12"] = {swip_left_max},

    ["2-1"] = { swip_right_max, -200 },
    ["S2-1"] = { swip_right_max, -550 },
    ["2-2"] = { swip_right_max, -750 },
    ["S2-2"] = { swip_right_max, -1100 },
    ["S2-3"] = { swip_right_max, -1400 },
    ["S2-4"] = { swip_right_max, -1600 },
    ["2-3"] = { swip_right_max, -1950 },
    ["2-4"] = { swip_right_max, -2450 },
    ["S2-5"] = { swip_right_max, -2750 },
    ["S2-6"] = { swip_right_max, -3000 },
    ["S2-7"] = { swip_right_max, -3350 },
    ["2-5"] = { swip_right_max, -3750 },
    ["2-6"] = { swip_right_max, -4100 },
    ["2-7"] = { swip_right_max, -4500 },
    ["S2-8"] = { swip_right_max, -4850 },
    ["S2-9"] = { swip_right_max, -5200 },
    ["2-8"] = { swip_right_max, -5450 },
    ["2-9"] = { swip_right_max, -5750 },
    ["S2-10"] = { swip_right_max, -6050 },
    ["S2-11"] = { swip_right_max, -6300 },
    ["S2-12"] = { swip_right_max, -6550 },
    ["2-10"] = { swip_right_max, -6800 },
    -- ["2-10"] = {swip_left_max},

    ["3-1"] = swip_right_max,
    ["3-2"] = { swip_right_max, -350 },
    ["3-3"] = { swip_right_max, -650 },
    ["S3-1"] = { swip_right_max, -1300 },
    ["S3-2"] = { swip_right_max, -1650 },
    ["3-4"] = { swip_right_max, -1950 },
    ["3-5"] = { swip_right_max, -2300 },
    ["3-6"] = { swip_right_max, -2600 },
    ["3-7"] = { swip_right_max, -2850 },
    ["S3-3"] = { swip_right_max, -3200 },
    ["3-8"] = { swip_right_max, -3300 },
    ["S3-4"] = { swip_right_max, -3550 },
    ["S3-5"] = { swip_right_max, -3800 },
    ["S3-6"] = { swip_right_max, -4150 },
    ["S3-7"] = { swip_right_max, -4450 },
    -- ["S3-7"] = {swip_left_max},

    ["4-1"] = swip_right_max,
    ["4-2"] = { swip_right_max, -200 },
    ["4-3"] = { swip_right_max, -450 },
    ["S4-1"] = { swip_right_max, -650 },
    ["S4-2"] = { swip_right_max, -900 },
    ["S4-3"] = { swip_right_max, -1100 },
    ["4-4"] = { swip_right_max, -1350 },
    ["4-5"] = { swip_right_max, -1600 },
    ["4-6"] = { swip_right_max, -1850 },
    ["S4-4"] = { swip_right_max, -2050 },
    ["S4-5"] = { swip_right_max, -2350 },
    ["S4-6"] = { swip_right_max, -2700 },
    ["4-7"] = { swip_right_max, -2900 },
    ["4-8"] = { swip_right_max, -3150 },
    ["4-9"] = { swip_right_max, -3400 },
    ["S4-7"] = { swip_right_max, -3600 },
    ["S4-8"] = { swip_right_max, -3850 },
    ["S4-9"] = { swip_right_max, -4150 },
    ["S4-10"] = { swip_right_max, -4450 },
    ["4-10"] = { swip_right_max, -4700 },
    -- ["4-10"] = {swip_left_max},

    ["5-1"] = swip_right_max,
    ["5-2"] = { swip_right_max, -350 },
    ["S5-1"] = { swip_right_max, -550 },
    ["S5-2"] = { swip_right_max, -900 },
    ["5-3"] = { swip_right_max, -1150 },
    ["5-4"] = { swip_right_max, -1500 },
    ["5-5"] = { swip_right_max, -1850 },
    ["5-6"] = { swip_right_max, -2150 },
    ["S5-3"] = { swip_right_max, -2400 },
    ["S5-4"] = { swip_right_max, -2750 },
    ["5-7"] = { swip_right_max, -3000 },
    ["5-8"] = { swip_right_max, -3300 },
    ["5-9"] = { swip_right_max, -3600 },
    ["S5-5"] = { swip_right_max, -3900 },
    ["S5-6"] = { swip_right_max, -4200 },
    ["S5-7"] = { swip_right_max, -4550 },
    ["S5-8"] = { swip_right_max, -4850 },
    ["S5-9"] = { swip_right_max, -5150 },
    ["5-10"] = { swip_right_max, -5100 },
    ["6-1"] = swip_right_max,
    ["6-2"] = { swip_right_max, -300 },
    ["6-3"] = { swip_right_max, -550 },
    ["6-4"] = { swip_right_max, -750 },
    ["6-5"] = { swip_right_max, -1000 },
    ["6-8"] = { swip_right_max, -1800 },
    ["6-9"] = { swip_right_max, -2400 },
    ["6-10"] = { swip_right_max, -2750 },
    ["S6-1"] = { swip_right_max, -2900 },
    ["S6-2"] = { swip_right_max, -3250 },
    ["6-11"] = { swip_right_max, -3500 },
    ["6-12"] = { swip_right_max, -3700 },
    ["6-14"] = { swip_right_max, -4200 },
    ["6-15"] = { swip_right_max, -4550 },
    ["S6-3"] = { swip_right_max, -4800 },
    ["S6-4"] = { swip_right_max, -5100 },
    ["6-16"] = { swip_right_max, -5350 },
    ["7-1"] = { swip_right_max },
    ["7-2"] = { swip_right_max, -300 },
    ["7-3"] = { swip_right_max, -500 },
    ["7-4"] = { swip_right_max, -650 },
    ["7-5"] = { swip_right_max, -1000 },
    ["7-6"] = { swip_right_max, -1350 },
    ["7-8"] = { swip_right_max, -1900 },
    ["7-9"] = { swip_right_max, -2100 },
    ["7-10"] = { swip_right_max, -2450 },
    ["7-11"] = { swip_right_max, -2700 },
    ["7-12"] = { swip_right_max, -2950 },
    ["7-13"] = { swip_right_max, -3150 },
    ["7-14"] = { swip_right_max, -3350 },
    ["7-15"] = { swip_right_max, -3600 },
    ["7-16"] = { swip_right_max, -3850 },
    ["S7-1"] = { swip_right_max, -4050 },
    ["S7-2"] = { swip_right_max, -4350 },
    ["7-17"] = { swip_right_max, -4550 },
    ["7-18"] = { swip_right_max, -5200 },
    ["R8-1"] = swip_right_max,
    ["R8-2"] = { swip_right_max, -350 },
    ["R8-3"] = { swip_right_max, -650 },
    ["R8-4"] = { swip_right_max, -950 },
    ["R8-5"] = { swip_right_max, -1200 },
    ["R8-6"] = { swip_right_max, -1500 },
    ["R8-7"] = { swip_right_max, -1650 },
    ["R8-8"] = { swip_right_max, -1800 },
    ["R8-9"] = { swip_right_max, -2200 },
    ["R8-10"] = { swip_right_max, -2400 },
    ["R8-11"] = { swip_right_max, -2700 },
    ["JT8-2"] = { swip_right_max, -3400 },
    ["JT8-3"] = { swip_right_max, -3700 },
    ["M8-6"] = { swip_right_max, -1800 },
    ["M8-7"] = { swip_right_max, -2200 },
    ["M8-8"] = { swip_right_max, -2650 },
    ["9-2"] = { swip_right_max, -300 },
    ["9-3"] = { swip_right_max, -500 },
    ["9-4"] = { swip_right_max, -800 },
    ["9-5"] = { swip_right_max, -1150 },
    ["9-6"] = { swip_right_max, -1400 },
    ["9-7"] = { swip_right_max, -2200 },
    ["9-9"] = { swip_right_max, -2850 },
    ["9-10"] = { swip_right_max, -3100 },
    ["9-11"] = { swip_right_max, -3400 },
    ["9-12"] = { swip_right_max, -3650 },
    ["9-13"] = { swip_right_max, -3950 },
    ["S9-1"] = { swip_right_max, -4250 },
    ["9-14"] = { swip_right_max, -4550 },
    ["9-15"] = { swip_right_max, -4800 },
    ["9-16"] = { swip_right_max, -5150 },
    ["9-17"] = { swip_right_max, -5450 },
    ["9-18"] = { swip_right_max, -5800 },
    ["9-19"] = { swip_right_max, -6150 },
    ["10-2"] = { swip_right_max, -100 },
    ["10-3"] = { swip_right_max, -250 },
    ["10-4"] = { swip_right_max, -650 },
    ["10-5"] = { swip_right_max, -950 },
    ["10-6"] = { swip_right_max, -1200 },
    ["10-7"] = { swip_right_max, -1350 },
    ["10-8"] = { swip_right_max, -1500 },
    ["10-9"] = { swip_right_max, -1600 },
    ["10-10"] = { swip_right_max, -1800 },
    ["10-11"] = { swip_right_max, -1900 },
    ["10-12"] = { swip_right_max, -2150 },
    ["10-14"] = { swip_right_max, -2500 },
    ["10-15"] = { swip_right_max, -2500 },
    ["10-16"] = { swip_right_max, -2600 },
    ["10-17"] = { swip_right_max, -2900 },
    -- chapter
    ["0"] = true,
    ["1"] = nil,
    ["2"] = nil,
    ["3"] = nil,
    ["4"] = true,
    ["5"] = true,
    ["6"] = nil,
    ["7"] = nil,
    ["8"] = nil,
    ["9"] = nil,
    ["10"] = nil,
}

rotate_point = function(x)
    local d = point_delimeter
    if type(x) ~= 'string' or not x:find(d) then return x end
    return x:gsub('([^' .. d .. ']+)' .. d .. '(.+)', '%2' .. d .. '%1')
end

expand_fight = function()
    local target = point["作战列表"]
    -- log(1114, target)
    local iter
    iter = { 'A', 'B', 'C', 'D' }
    for i = 2, 2 do
        for _, x in pairs(iter) do
            target['PR-' .. x .. '-' .. i] = rotate_point(
                target['PR-' .. x .. '-' .. (i - 1)])
        end
    end
    for i = 2, 5 do target['AP-' .. i] = rotate_point(target['AP-' .. (i - 1)]) end
    for i = 2, 6 do target['LS-' .. i] = rotate_point(target['LS-' .. (i - 1)]) end
    iter = { 'CA', 'SK' }
    for _, v in pairs(iter) do
        for i = 0, 5 do target[v .. '-' .. i] = target['AP-' .. i] end
    end
    iter = { 'CE' }
    for _, v in pairs(iter) do
        for i = 0, 6 do target[v .. '-' .. i] = target['LS-' .. i] end
    end
end
expand_fight()

flatten = function()
    local p = {}
    for k, v in pairs(point) do
        if k:endsWith('列表') and type(v) == 'table' then
            for k2, v2 in pairs(v) do
                p[k .. k2] = v2
                center[k .. k2] = center[k]
            end
            point[k] = {}
            for i = 1, #v do table.insert(point[k], k .. i) end
        end
    end
    update(point, p, true)
end
flatten()

point2first = function(v)
    return v:match('(%d+)' .. coord_delimeter .. '(%d+)' .. coord_delimeter ..
        '(......)')
end
point2relative = function(v)
    local fx, fy, fc = point2first(v)
    local dst = ''
    for x, y, c in v:gmatch("(%d+)" .. coord_delimeter .. "(%d+)" ..
        coord_delimeter .. "(......)") do
        x, y = map(tonumber, x, y)
        x = math.round(x - fx)
        y = math.round(y - fy)
        dst = dst .. x .. coord_delimeter .. y .. coord_delimeter .. c ..
            point_delimeter
    end
    return dst:sub(1, #dst - 1)
end

point2center = function(src)
    local origin_center = { 0, 0 }
    local new_center = { 0, 0 }
    local position = (center[src] or "left_top")
    local x = position:match("^([^_]+)")
    local y = position:match("_([^_]+)")
    if x:find(coord_delimeter) then
        origin_center[1] = tonumber(x:match("(.+),"))
        new_center[1] = tonumber(x:match(",(.+)"))
    elseif x == 'left' then
        origin_center[1] = 0
        new_center[1] = 0
    elseif x == 'center' then
        origin_center[1] = 1919 / 2
        new_center[1] = (screen.width - 1) / 2
    elseif x == 'right' then
        origin_center[1] = 1919
        new_center[1] = screen.width - 1
    end

    if y:find(coord_delimeter) then
        origin_center[2] = tonumber(y:match("(.+),"))
        new_center[2] = tonumber(y:match(",(.+)"))
    elseif y == 'top' then
        origin_center[2] = 0
        new_center[2] = 0
    elseif y == 'center' then
        origin_center[2] = 1079 / 2
        new_center[2] = (screen.height - 1) / 2
    elseif y == 'bottom' then
        origin_center[2] = 1079
        new_center[2] = screen.height - 1
    end
    return origin_center, new_center
end

convert_coords = function(point)
    local origin_center, new_center
    local hs, ws
    for k, v in pairs(point) do
        if center[k] and center[k]:find("maxscalex") then
            hs = hscale
            ws = maxscale
        elseif center[k] and center[k]:find("maxscale") then
            hs = maxscale
            ws = maxscale
        elseif center[k] and center[k]:find("anisotropy") then
            hs = hscale
            ws = wscale
        else
            hs = minscale
            ws = minscale
        end
        if type(v) == "table" and #v == 0 then
            convert_coords(v)
        elseif type(v) == "table" and
            table.all(v, function(x) return type(x) == 'number' end) then
            assert(#v % 2 == 0)
            origin_center, new_center = point2center(k)
            for i = 1, #v, 2 do
                v[i] = math.round((v[i] - origin_center[1]) * ws + new_center[1])
                v[i + 1] =
                    math.round((v[i + 1] - origin_center[2]) * hs + new_center[2])
            end
        elseif type(v) == "string" and v:find(coord_delimeter) then
            origin_center, new_center = point2center(k)
            -- if k == '今日参与交流已达上限' then
            --   log(origin_center, new_center)
            --   safeexit()
            -- end
            local dst = ''
            for x, y, c in v:gmatch("(%d+)" .. coord_delimeter .. "(%d+)" ..
                coord_delimeter .. "(......)") do
                x, y = map(tonumber, x, y)
                x = math.round((x - origin_center[1]) * ws + new_center[1])
                y = math.round((y - origin_center[2]) * hs + new_center[2])
                dst = dst .. x .. coord_delimeter .. y .. coord_delimeter .. c ..
                    point_delimeter
            end
            dst = dst:sub(0, #dst - 1)
            point[k] = dst
        end
    end
end
convert_coords(point)

update_assistant_position = function()
    local t = {}
    for i = 1, 1 do
        local x, y
        x = point["基建副手列表" .. i][1]
        if x > 644 * minscale then
            for j = 1, #point["干员空隙列表"] do
                if x <= point["干员空隙列表" .. j][1] then
                    x = point["干员空隙列表" .. j][1]
                    break
                end
            end
        end
        point["基建副手列表" .. i][1] = x
    end
end
-- update_assistant_position()

point2region = function(v)
    local p, q, l, r, t, b = 0, 0, screen.width - 1, 0, screen.height - 1, 0
    local x, y
    while p do
        p = p + 1
        q = v:find(coord_delimeter, p)
        x = tonumber(v:sub(p, q - 1))
        y = tonumber(v:sub(q + 1, v:find(coord_delimeter, q + 1) - 1))
        l = min(l, x)
        r = max(r, x)
        t = min(t, y)
        b = max(b, y)
        p = v:find(point_delimeter, q + 1)
    end
    return { l, t, r + 1, b + 1 }
end

-- list for findColor globally
rfg = {
    面板赠送一次 = point.面板赠送一次范围,
    线索传递橙框 = { 0, 0, screen.width, screen.height },
    入驻干员 = point.入驻干员范围,
    入驻干员会客厅 = point.入驻干员会客厅范围,
    入驻干员控制中枢 = point.入驻干员控制中枢范围,
    第一干员卡片 = point.第一干员卡片范围,
    不要了 = point.不要了范围,
    源石锭 = point.源石锭范围,
    收藏品 = point.收藏品范围,
    招募券 = point.招募券范围,
    剧目 = point.剧目范围,
    技能亮 = { 0, 0, screen.width - 1, screen.height - 1 },
    技能ready = { 0, 0, screen.width - 1, screen.height - 1 },

    打探消息 = { 0, 0, screen.width - 1, screen.height - 1 },
}

rfl = {}
first_point = {}
first_color = {}
update_rfl = function()
    -- region for findColor locally
    for k, v in pairs(point) do
        if type(v) == "string" and v:find(coord_delimeter) and not rfg[k] then
            rfl[k] = point2region(v)
            first_point[k] = { rfl[k][1], rfl[k][2] }
        elseif type(v) == "string" and v:find(coord_delimeter) and rfg[k] then
            -- log(1410,k,v)

            v = point2relative(v)
            first_color[k] = v:match("%d+" .. coord_delimeter .. "%d+" ..
                coord_delimeter .. "(......)")
            -- log(v)
            if v:find(point_delimeter) then
                point[k] = v:match("[^" .. point_delimeter .. "+]" .. point_delimeter ..
                    "(.+)"):map({ [","] = '|' })
            else
                point[k] = ''
            end

            -- log(1411,point[k],first_color[k])
            --
        end
    end
end
update_rfl()
