话不多说直接上代码

var window = floaty.window(<frame><linear><button id="action" text="2.0" w="40" h="40" color="#ffffff" bg="#77000000"/></linear> </frame>
);var execution = null;//记录按键被按下时的触摸坐标
var x = 0, y = 0;
//记录按键被按下时的悬浮窗位置
var windowX, windowY;
//记录按键被按下的时间以便判断长按等动作
var downTime;
window.action.setOnTouchListener(function(view, event){switch(event.getAction()){case event.ACTION_DOWN:x = event.getRawX();y = event.getRawY();windowX = window.getX();windowY = window.getY();downTime = new Date().getTime();return true;case event.ACTION_MOVE://移动手指时调整悬浮窗位置window.setPosition(windowX + (event.getRawX() - x),windowY + (event.getRawY() - y));//如果按下的时间超过1.5秒判断为长按,退出脚本//if(new Date().getTime() - downTime > 1500){//exit();//}return true;case event.ACTION_UP://手指弹起时如果偏移很小则判断为点击if(Math.abs(event.getRawY() - y) < 5 && Math.abs(event.getRawX() - x) < 5){onClick();}return true;}return true;
});
bkz=0;
function onClick(){/* if(bkz==0){bkz=1;window.action.text("..");*/threads.start(function(){选择();/* bkz=0;ui.run(function(){window.action.text("CA");});*/});}
//}path1=[
"JavaScript",
"QQ与微信",
"Shell命令",
"事件与按键、触摸监听",
"其他应用",
"图片与图色处理",
"安卓7.0+点按和手势",
"定时器",
"对话框",
"应用",
"控制台",
"文件读写",
"界面",
"脚本引擎",
"调用Java API",
"需要Root权限的自动操作"
];
path2=[
[
"E4X.js",
"HelloWorld.js",
"数字.js"
],
[
"QQ加群成员脚本.js",
"QQ名片点赞脚本.js",
"QQ名片点赞(只点赞好友).js",
"QQ循环发送图片.js",
"QQ批量删除好友.js",
"QQ批量同意好友验证.js",
"QQ点赞群成员.js",
"QQ空间点赞.js",
"QQ自动抢红包(没卵用).js",
"QQ顺序点赞脚本.js",
"取关全部公众号.js",
"好友列表名片点赞(不完美).js",
"屏蔽QQ通知.js",
"循环发送消息.js",
"微信一键已读.js",
"微信循环发送图片.js",
"微信扫一扫.js",
"批量删除微信好友.js",
"批量删除朋友圈.js",
"批量取关公众号.js",
"支付宝扫一扫.js",
"朋友圈点赞.js",
"自动取消金豆.js"
],
[
"冻结网易云音乐.js",
"微信扫一扫(Root).js",
"支付宝扫一扫(Root).js",
"结束所有后台进程.js",
"解冻并打开网易云音乐.js",
"锁屏.js"
],
[
"Toast监听.js",
"按键监听.js",
"触摸监听.js",
"通知监听.js",
"长按返回退出当前程序.js",
"音量键控制程序.js"
],
[
"清空酷安动态.js",
"网易云音乐批量点赞.js",
"网易云音乐签到.js",
"贴吧一键签到.js"
],
[
"区域找色1.js",
"区域找色2.js",
"多线程找色.js",
"实时显示触摸点颜色.js",
"截图并保存1.js",
"截图并保存2.js",
"找到QQ红点位置.js",
"找色与找色算法.js",
"模糊找色.js",
"精确找色.js",
"颜色获取和检测.js"
],
[
"QQ刷一刷.js",
"三指下滑.js",
"三指捏合.js",
"删除全部空间留言.js",
"双指捏合.js",
"心形手势.js",
"拉出通知栏.js",
"点击左上角.js"
],
[
"定时执行.js",
"循环执行.js"
],
[
"单选框.js",
"多选框.js",
"确认框.js",
"简单计算器.js",
"菜单.js",
"输入框.js"
],
[
"卸载应用.js",
"发送意图-QQ文本消息分享.js",
"应用工具.js",
"强制停止应用.js",
"打开应用.js"
],
[
"产生随机数.js",
"控制台示例.js",
"终端模拟器.js"
],
[
"写入文本文件.js",
"删除所有空文件夹.js",
"文件编码转换(高级).js",
"文件编码转换.js",
"读写文本文件.js",
"读取文本文件.js"
],
[
"QQ打开聊天窗口.js",
"WannaCry(仅为娱乐).js",
"登录界面.js",
"简单计算器.js"
],
[
"停止所有正在运行的脚本.js",
"运行录制文件.js",
"运行新的脚本任务.js",
"运行脚本文件.js"
],
[
"liveConnect.js"
],
[
"删除全部空间留言.js"
]];
code=[
[
b64("LyogLSotIE1vZGU6IGphdmE7IHRhYi13aWR0aDogODsgaW5kZW50LXRhYnMtbW9kZTogbmlsOyBjLWJhc2ljLW9mZnNldDogNCAtKi0KICoKICogVGhpcyBTb3VyY2UgQ29kZSBGb3JtIGlzIHN1YmplY3QgdG8gdGhlIHRlcm1zIG9mIHRoZSBNb3ppbGxhIFB1YmxpYwogKiBMaWNlbnNlLCB2LiAyLjAuIElmIGEgY29weSBvZiB0aGUgTVBMIHdhcyBub3QgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzCiAqIGZpbGUsIFlvdSBjYW4gb2J0YWluIG9uZSBhdCBodHRwOi8vbW96aWxsYS5vcmcvTVBMLzIuMC8uICovCgpwcmludCgiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIpOwoKLy8gVXNlIHRoZSBYTUwgY29uc3RydWN0b3IgdG8gcGFyc2UgYW4gc3RyaW5nIGludG8gYW4gWE1MIG9iamVjdAp2YXIgSm9obiA9ICI8ZW1wbG95ZWU+PG5hbWU+Sm9objwvbmFtZT48YWdlPjI1PC9hZ2U+PC9lbXBsb3llZT4iOwp2YXIgU3VlID0iPGVtcGxveWVlPjxuYW1lPlN1ZTwvbmFtZT48YWdlPjMyPC9hZ2U+PC9lbXBsb3llZT4iOwp2YXIgdGFnTmFtZSA9ICJlbXBsb3llZXMiOwp2YXIgZW1wbG95ZWVzID0gbmV3IFhNTCgiPCIgKyB0YWdOYW1lICsiPiIgKyBKb2huICsgU3VlICsgIjwvIiArIHRhZ05hbWUgKyI+Iik7CnByaW50KCJUaGUgZW1wbG95ZWVzIFhNTCBvYmplY3QgY29uc3RydWN0ZWQgZnJvbSBhIHN0cmluZyBpczpcbiIgKyBlbXBsb3llZXMpOwoKcHJpbnQoIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iKTsKCi8vIFVzZSBhbiBYTUwgbGl0ZXJhbCB0byBjcmVhdGUgYW4gWE1MIG9iamVjdAp2YXIgb3JkZXIgPSA8b3JkZXI+CiAgIDxjdXN0b21lcj4KICAgICAgPGZpcnN0bmFtZT5Kb2huPC9maXJzdG5hbWU+CiAgICAgIDxsYXN0bmFtZT5Eb2U8L2xhc3RuYW1lPgogICA8L2N1c3RvbWVyPgogICA8aXRlbT4KICAgICAgPGRlc2NyaXB0aW9uPkJpZyBTY3JlZW4gVGVsZXZpc2lvbjwvZGVzY3JpcHRpb24+CiAgICAgIDxwcmljZT4xMjk5Ljk5PC9wcmljZT4KICAgICAgPHF1YW50aXR5PjE8L3F1YW50aXR5PgogICA8L2l0ZW0+Cjwvb3JkZXI+CgovLyBDb25zdHJ1Y3QgdGhlIGZ1bGwgY3VzdG9tZXIgbmFtZQp2YXIgbmFtZSA9IG9yZGVyLmN1c3RvbWVyLmZpcnN0bmFtZSArICIgIiArIG9yZGVyLmN1c3RvbWVyLmxhc3RuYW1lOwoKLy8gQ2FsY3VsYXRlIHRoZSB0b3RhbCBwcmljZQp2YXIgdG90YWwgPSBvcmRlci5pdGVtLnByaWNlICogb3JkZXIuaXRlbS5xdWFudGl0eTsKCnByaW50KCJUaGUgb3JkZXIgWE1MIG9iamVjdCBjb25zdHJ1Y3RlZCB1c2luZyBhIGxpdGVyYWwgaXM6XG4iICsgb3JkZXIpOwpwcmludCgiVGhlIHRvdGFsIHByaWNlIG9mICIgKyBuYW1lICsgIidzIG9yZGVyIGlzICIgKyB0b3RhbCk7CgpwcmludCgiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIpOwoKLy8gY29uc3RydWN0IGEgbmV3IFhNTCBvYmplY3QgdXNpbmcgZXhwYW5kbyBhbmQgc3VwZXItZXhwYW5kbyBwcm9wZXJ0aWVzCnZhciBvcmRlciA9IDxvcmRlci8+OwpvcmRlci5jdXN0b21lci5uYW1lID0gIkZyZWQgSm9uZXMiOwpvcmRlci5jdXN0b21lci5hZGRyZXNzLnN0cmVldCA9ICIxMjMgTG9uZyBMYW5nIjsKb3JkZXIuY3VzdG9tZXIuYWRkcmVzcy5jaXR5ID0gIlVuZGVyd29vZCI7Cm9yZGVyLmN1c3RvbWVyLmFkZHJlc3Muc3RhdGUgPSAiQ0EiOwpvcmRlci5pdGVtWzBdID0gIiI7Cm9yZGVyLml0ZW1bMF0uZGVzY3JpcHRpb24gPSAiU21hbGwgUm9kZW50cyI7Cm9yZGVyLml0ZW1bMF0ucXVhbnRpdHkgPSAxMDsKb3JkZXIuaXRlbVswXS5wcmljZSA9IDYuOTU7CgpwcmludCgiVGhlIG9yZGVyIGN1c3RydWN0ZWQgdXNpbmcgZXhwYW5kb3MgYW5kIHN1cGVyLWV4cGFuZG9zIGlzOlxuIiArIG9yZGVyKTsKCi8vIGFwcGVuZCBhIG5ldyBpdGVtIHRvIHRoZSBvcmRlcgpvcmRlci5pdGVtICs9IDxpdGVtPjxkZXNjcmlwdGlvbj5DYXRhcHVsdDwvZGVzY3JpcHRpb24+PHByaWNlPjEzOS45NTwvcHJpY2U+PC9pdGVtPjsKCnByaW50KCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIik7CgpwcmludCgiVGhlIG9yZGVyIGFmdGVyIGFwcGVuZGluZyBhIG5ldyBpdGVtIGlzOlxuIiArIG9yZGVyKTsKCnByaW50KCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIik7CgovLyBkeW5hbWljYWxseSBjb25zdHJ1Y3QgYW4gWE1MIGVsZW1lbnQgdXNpbmcgZW1iZWRkZWQgZXhwcmVzc2lvbnMKdmFyIHRhZ25hbWUgPSAibmFtZSI7CnZhciBhdHRyaWJ1dGVuYW1lID0gImlkIjsKdmFyIGF0dHJpYnV0ZXZhbHVlID0gNTsKdmFyIGNvbnRlbnQgPSAiRnJlZCI7Cgp2YXIgeCA9IDx7dGFnbmFtZX0ge2F0dHJpYnV0ZW5hbWV9PXthdHRyaWJ1dGV2YWx1ZX0+e2NvbnRlbnR9PC97dGFnbmFtZX0+OwoKcHJpbnQoIlRoZSBkeW5hbWljYWxseSBjb21wdXRlZCBlbGVtZW50IHZhbHVlIGlzOlxuIiArIHgudG9YTUxTdHJpbmcoKSk7CgpwcmludCgiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIpOwoKLy8gQ3JlYXRlIGEgU09BUCBtZXNzYWdlCnZhciBtZXNzYWdlID0gPHNvYXA6RW52ZWxvcGUKICAgICAgeG1sbnM6c29hcD0iaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvc29hcC9lbnZlbG9wZS8iCiAgICAgIHNvYXA6ZW5jb2RpbmdTdHlsZT0iaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvc29hcC9lbmNvZGluZy8iPgogICA8c29hcDpCb2R5PgogICAgICA8bTpHZXRMYXN0VHJhZGVQcmljZSB4bWxuczptPSJodHRwOi8vbXljb21wYW55LmNvbS9zdG9ja3MiPgogICAgICAgICA8c3ltYm9sPkRJUzwvc3ltYm9sPgogICAgICA8L206R2V0TGFzdFRyYWRlUHJpY2U+CiAgIDwvc29hcDpCb2R5Pgo8L3NvYXA6RW52ZWxvcGU+CgovLyBkZWNsYXJlIHRoZSBTT0FQIGFuZCBzdG9ja3MgbmFtZXNwYWNlcwp2YXIgc29hcCA9IG5ldyBOYW1lc3BhY2UoImh0dHA6Ly9zY2hlbWFzLnhtbHNvYXAub3JnL3NvYXAvZW52ZWxvcGUvIik7CnZhciBzdG9jayA9IG5ldyBOYW1lc3BhY2UgKCJodHRwOi8vbXljb21wYW55LmNvbS9zdG9ja3MiKTsKCi8vIGV4dHJhY3QgdGhlIHNvYXAgZW5jb2Rpbmcgc3R5bGUgYW5kIGJvZHkgZnJvbSB0aGUgc29hcCBtZXNzYWdlCnZhciBlbmNvZGluZ1N0eWxlID0gbWVzc2FnZS5Ac29hcDo6ZW5jb2RpbmdTdHlsZTsKCnByaW50KCJUaGUgZW5jb2Rpbmcgc3R5bGUgb2YgdGhlIHNvYXAgbWVzc2FnZSBpcyBzcGVjaWZpZWQgYnk6XG4iICsgZW5jb2RpbmdTdHlsZSk7CgovLyBjaGFuZ2UgdGhlIHN0b2NrIHN5bWJvbAptZXNzYWdlLnNvYXA6OkJvZHkuc3RvY2s6OkdldExhc3RUcmFkZVByaWNlLnN5bWJvbCA9ICJNWUNPIjsKCnZhciBib2R5ID0gbWVzc2FnZS5zb2FwOjpCb2R5OwoKcHJpbnQoIlRoZSBib2R5IG9mIHRoZSBzb2FwIG1lc3NhZ2UgaXM6XG4iICsgYm9keSk7CgpwcmludCgiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIpOwoKLy8gY3JlYXRlIGFuIG1hbmlwdWxhdGUgYW4gWE1MIG9iamVjdCB1c2luZyB0aGUgZGVmYXVsdCB4bWwgbmFtZXNwYWNlCgpkZWZhdWx0IHhtbCBuYW1lc3BhY2UgPSAiaHR0cDovL2RlZmF1bHQubmFtZXNwYWNlLmNvbSI7CnZhciB4ID0gPHgvPjsKeC5hID0gIm9uZSI7CnguYiA9ICJ0d28iOwp4LmMgPSA8YyB4bWxucz0iaHR0cDovL3NvbWUub3RoZXIubmFtZXNwYWNlLmNvbSI+dGhyZWU8L2M+OwoKcHJpbnQoIlhNTCBvYmplY3QgY29uc3RydWN0ZWQgdXNpbmcgdGhlIGRlZmF1bHQgeG1sIG5hbWVzcGFjZTpcbiIgKyB4KTsKCmRlZmF1bHQgeG1sIG5hbWVzcGFjZT0iIjsKCnByaW50KCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIik7Cgp2YXIgb3JkZXIgPSA8b3JkZXIgaWQgPSAiMTIzNDU2IiB0aW1lc3RhbXA9Ik1vbiBNYXIgMTAgMjAwMyAxNjowMzoyNSBHTVQtMDgwMCAoUFNUKSI+CiAgIDxjdXN0b21lcj4KICAgICAgPGZpcnN0bmFtZT5Kb2huPC9maXJzdG5hbWU+CiAgICAgIDxsYXN0bmFtZT5Eb2U8L2xhc3RuYW1lPgogICA8L2N1c3RvbWVyPgogICA8aXRlbSBpZD0iMzQ1NiI+CiAgICAgIDxkZXNjcmlwdGlvbj5CaWcgU2NyZWVuIFRlbGV2aXNpb248L2Rlc2NyaXB0aW9uPgogICAgICA8cHJpY2U+MTI5OS45OTwvcHJpY2U+CiAgICAgIDxxdWFudGl0eT4xPC9xdWFudGl0eT4KICAgPC9pdGVtPgogICA8aXRlbSBpZCA9ICI1Njc4OSI+CiAgICAgIDxkZXNjcmlwdGlvbj5EVkQgUGxheWVyPC9kZXNjcmlwdGlvbj4KICAgICAgPHByaWNlPjM5OS45OTwvcHJpY2U+CiAgICAgIDxxdWFudGl0eT4xPC9xdWFudGl0eT4KICAgPC9pdGVtPgo8L29yZGVyPjsKCgovLyBnZXQgdGhlIGN1c3RvbWVyIGVsZW1lbnQgZnJvbSB0aGUgb3JkZXJwcmludCgiVGhlIGN1c3RvbWVyIGlzOlxuIiArIG9yZGVyLmN1c3RvbWVyKTsKCi8vIGdldCB0aGUgaWQgYXR0cmlidXRlIGZyb20gdGhlIG9yZGVyCnByaW50KCJUaGUgb3JkZXIgaWQgaXM6IiArIG9yZGVyLkBpZCk7CgovLyBnZXQgYWxsIHRoZSBjaGlsZCBlbGVtZW50cyBmcm9tIHRoZSBvcmRlciBlbGVtZW50CnByaW50KCJUaGUgY2hpbGRyZW4gb2YgdGhlIG9yZGVyIGFyZTpcbiIgKyBvcmRlci4qKTsgCgovLyBnZXQgdGhlIGxpc3Qgb2YgYWxsIGl0ZW0gZGVzY3JpcHRpb25zCnByaW50KCJUaGUgb3JkZXIgZGVzY3JpcHRpb25zIGFyZTpcbiIgKyBvcmRlci5pdGVtLmRlc2NyaXB0aW9uKTsgCgoKLy8gZ2V0IHNlY29uZCBpdGVtIGJ5IG51bWVyaWMgaW5kZXgKcHJpbnQoIlRoZSBzZWNvbmQgaXRlbSBpczpcbiIgKyBvcmRlci5pdGVtWzFdKTsKCi8vIGdldCB0aGUgbGlzdCBvZiBhbGwgY2hpbGQgZWxlbWVudHMgaW4gYWxsIGl0ZW0gZWxlbWVudHMKcHJpbnQoIlRoZSBjaGlsZHJlbiBvZiB0aGUgaXRlbXMgYXJlOlxuIiArIG9yZGVyLml0ZW0uKik7CgovLyBnZXQgdGhlIHNlY29uZCBjaGlsZCBlbGVtZW50IGZyb20gdGhlIG9yZGVyIGJ5IGluZGV4CnByaW50KCJUaGUgc2Vjb25kIGNoaWxkIG9mIHRoZSBvcmRlciBpczpcbiIgKyBvcmRlci4qWzFdKTsKCi8vIGNhbGN1bGF0ZSB0aGUgdG90YWwgcHJpY2Ugb2YgdGhlIG9yZGVyCnZhciB0b3RhbHByaWNlID0gMDsKZm9yIGVhY2ggKGkgaW4gb3JkZXIuaXRlbSkgewoJdG90YWxwcmljZSArPSBpLnByaWNlICogaS5xdWFudGl0eTsKfQpwcmludCgiVGhlIHRvdGFsIHByaWNlIG9mIHRoZSBvcmRlciBpczogIiArIHRvdGFscHJpY2UpOwoKcHJpbnQoIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iKTsKCnZhciBlID0gPGVtcGxveWVlcz4KICAgPGVtcGxveWVlIGlkPSIxIj48bmFtZT5Kb2U8L25hbWU+PGFnZT4yMDwvYWdlPjwvZW1wbG95ZWU+CiAgIDxlbXBsb3llZSBpZD0iMiI+PG5hbWU+U3VlPC9uYW1lPjxhZ2U+MzA8L2FnZT48L2VtcGxveWVlPgo8L2VtcGxveWVlcz47CgovLyBnZXQgYWxsIHRoZSBuYW1lcyBpbiBlCnByaW50KCJBbGwgdGhlIGVtcGxveWVlIG5hbWVzIGFyZTpcbiIgKyBlLi5uYW1lKTsKCi8vIGVtcGxveWVlcyB3aXRoIG5hbWUgSm9lCnByaW50KCJUaGUgZW1wbG95ZWUgbmFtZWQgSm9lIGlzOlxuIiArIGUuZW1wbG95ZWUuKG5hbWUgPT0gIkpvZSIpKTsKCi8vIGVtcGxveWVlcyB3aXRoIGlkJ3MgMSAmIDIKcHJpbnQoIkVtcGxveWVlcyB3aXRoIGlkcyAxICYgMjpcbiIgKyBlLmVtcGxveWVlLihAaWQgPT0gMSB8fCBAaWQgPT0gMikpOyAKCi8vIG5hbWUgb2YgZW1wbG95ZWUgd2l0aCBpZCAxCnByaW50KCJOYW1lIG9mIHRoZSB0aGUgZW1wbG95ZWUgd2l0aCBJRD0xOiAiICsgZS5lbXBsb3llZS4oQGlkID09IDEpLm5hbWUpOwoKcHJpbnQoIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iKTsKCm9wZW5Db25zb2xlKCk7CgoKCgo="),
b64("bG9nKCJIZWxsbyB3b3JsZCEhISIpOw0KdG9hc3QoIkhlbGxvLCBBdXRvSnMhIik7DQpjb25zb2xlLnNob3coKTs="),
b64("YSA9IDU7DQpiID0gNjsNCmMgPSAtMTsNCnggPSAxLjU7DQp5ID0gYSAqIHggKiB4ICsgYiAqIHggKiBjOw0KbG9nKCJ5ID0gIiArIHkpOw0Kb3BlbkNvbnNvbGUoKTsNCg==")
],
[
b64("YXV0bygpOw0KDQp2YXIg5aW95Y+L6aqM6K+B5L+h5oGvID0gIkF1dG9Kc+iHquWKqOa3u+WKoOe+pOWlveWPiyI7DQp2YXIg5bu26L+fID0gNTAwOw0KDQpsYXVuY2hBcHAoIlFRIik7DQpzbGVlcCg1MDApOw0KaWYoY3VycmVudEFjdGl2aXR5KCkgIT0gImNvbS50ZW5jZW50Lm1vYmlsZXFxLmFjdGl2aXR5LlRyb29wTWVtYmVyTGlzdEFjdGl2aXR5Iil7DQogICAgdG9hc3QoIuivt+aJk+W8gOimgeWKoOeahOe+pOeahOiBiuWkqeeql+WPoyIpOw0KICAgIG9wZW5Hcm91cE1lbWJlckxpc3QoKTsNCn0NCg0KdmFyIGFkZGVkID0ge307DQp3aGlsZSh0cnVlKXsNCiAgICB2YXIgbGlzdCA9IGNsYXNzTmFtZSgiQWJzTGlzdFZpZXciKS5maW5kT25lKCk7DQoJdmFyIGNvdW50ID0gbGlzdC5jaGlsZENvdW50KCk7DQoJZm9yKHZhciBpID0gMDsgaSA8IGNvdW50OyBpKyspew0KCSAgICB2YXIgY2hpbGQgPSBsaXN0LmNoaWxkKGkpOw0KICAgICAgICBpZighY2hpbGQgfHwgY2hpbGQuY2xhc3NOYW1lKCkgIT0gImFuZHJvaWQud2lkZ2V0LkZyYW1lTGF5b3V0Iil7DQogICAgICAgICAgICBjb250aW51ZTsNCiAgICAgICAgfQ0KICAgICAgICBpZighaXNHcm91cE1lbWJlcihjaGlsZCkgfHwgaXNNeXNlbGYoY2hpbGQpKXsNCiAgICAgICAgICAgIGNvbnRpbnVlOw0KICAgICAgICB9DQogICAgICAgIGNoaWxkLmNoaWxkKDApLmNsaWNrKCk7DQogICAgICAgIHNsZWVwKDUwMCk7DQogICAgICAgIGFkZEFzRnJpZW5kKCk7DQogICAgICAgIHNsZWVwKOW7tui/nyk7DQoJfQ0KCWxpc3Quc2Nyb2xsRm9yd2FyZCgpOw0KfQ0KDQpmdW5jdGlvbiBpc0dyb3VwTWVtYmVyKGNoaWxkKXsNCiAgICB2YXIgdHZOYW1lID0gY2hpbGQuZmluZE9uZShpZCgidHZfbmFtZSIpKTsNCiAgICBpZighdHZOYW1lKXsNCiAgICAgIHJldHVybiBmYWxzZTsNCiAgICB9DQogICAgbG9nKHR2TmFtZS50ZXh0KCkpOw0KCXJldHVybiB0dk5hbWUudGV4dCgpICE9ICJCYWJ5IFEiOw0KfQ0KDQpmdW5jdGlvbiBpc015c2VsZihjaGlsZCl7DQoJdmFyIGkgPSBjaGlsZC5maW5kT25lKHRleHQoIuaIkSIpKTsNCglpZighaSl7DQoJICByZXR1cm4gZmFsc2U7DQoJfQ0KCXJldHVybiBpLmlkKCkgJiYgIWkuaWQoKS5lbmRzV2l0aCgidHZfbmFtZSIpOw0KfQ0KDQpmdW5jdGlvbiBhZGRBc0ZyaWVuZCgpew0KCXZhciBxcSA9IGdldFFRKCk7DQoJdG9hc3QocXEpOw0KCWlmKGFkZGVkW3FxXSl7DQoJCXdoaWxlKCFjbGljaygi6L+U5ZueIikpOw0KCQlyZXR1cm47DQoJfQ0KCWFkZGVkW3FxXSA9IHRydWU7DQoJaWYoY2xpY2soIuWKoOWlveWPiyIpKXsNCiAgICAgICAgc2xlZXAoODAwKTsNCiAgICAgICAgc2V0VGV4dCgwLCDlpb3lj4vpqozor4Hkv6Hmga8pOw0KICAgICAgICB3aGlsZSghY2xpY2soIuWPkemAgSIpKTsNCiAgICAgICAgc2xlZXAoODAwKTsNCiAgICAgICAgaWYoY2xpY2soIuWPlua2iCIpKXsNCiAgICAgICAgICBzbGVlcCg0MDApOw0KICAgICAgICB9DQogICAgICAgIHdoaWxlKCFiYWNrKCkpOw0KICAgIH1lbHNlew0KICAgICAgICB3aGlsZSghYmFjaygpKTsNCiAgICB9DQp9DQoNCmZ1bmN0aW9uIGdldFFRKCl7DQoJdmFyIHFxID0gdGV4dE1hdGNoZXMoIlxcZHs1LDEyfSIpLmZpbmRPbmUoKS50ZXh0KCk7DQoJcmV0dXJuIHFxOw0KfQ0KDQpmdW5jdGlvbiBvcGVuR3JvdXBNZW1iZXJMaXN0KCl7DQogICAgZGVzYygi576k6LWE5paZ5Y2hIikuY2xpY2soKTsNCiAgICB2YXIgZ3JvdXBNZW1iZXJDb3VudFZpZXcgPSB0ZXh0RW5kc1dpdGgoIuWQjeaIkOWRmCIpLmZpbmRPbmUoKTsNCiAgICB2YXIgZ3JvdXBNZW1iZXJDb3VudCA9IHBhcnNlSW50KC9cZCsvLmV4ZWMoZ3JvdXBNZW1iZXJDb3VudFZpZXcudGV4dCgpKVswXSk7DQogICAgZ3JvdXBNZW1iZXJDb3VudFZpZXcucGFyZW50KCkuY2xpY2soKTsNCiAgICBzbGVlcChncm91cE1lbWJlckNvdW50ICogNCk7DQp9"),
b64("ImF1dG8iOwoKZnVuY3Rpb24g5LiL5ruRKCl7CiAgY2xhc3NOYW1lKCJBYnNMaXN0VmlldyIpLnNjcm9sbGFibGUoKS5zY3JvbGxGb3J3YXJkKCk7Cn0KCmZ1bmN0aW9uIOi1nigpewogIGNsYXNzTmFtZSgiSW1hZ2VWaWV3IikuZGVzYygi6LWeIikuY2xpY2soKTsKfQoKZnVuY3Rpb24g5pi+56S65pu05aSaKCl7CiAgZm9yKGxldCBpID0gMDsgaSA8IDI7aSsrKXsKICAgIGNsaWNrKCLmmL7npLrmm7TlpJoiKTsKICB9Cn0KCnRvYXN0KCLor7fmiZPlvIDoh6rlt7HnmoTotYTmlpnpobXvvIzngrnlh7vngrnotZ7lm77moIciKTsKc2xlZXAoMTAwKTsKCndoaWxlKG5vdFN0b3BwZWQoKSl7CiAgZm9yKGxldCBpID0gMDsgaSA8IDEwOyBpKyspewogICAg6LWeKCk7CiAgfQogIOaYvuekuuabtOWkmigpOwogIOS4i+a7kSgpOwp9"),
b64("ImF1dG8iOw0KDQp2YXIg5bu26L+fID0gMTAwOw0KDQpsYXVuY2hBcHAoIlFRIik7DQp0b2FzdCgi6K+35omT5byA6Ieq5bex55qE6LWE5paZ6aG177yM54K55Ye754K56LWe5Zu+5qCHIik7DQpzbGVlcCg1MDApOw0Kd2FpdEZvckFjdGl2aXR5KCJjb20udGVuY2VudC5tb2JpbGVxcS5hY3Rpdml0eS5WaXNpdG9yc0FjdGl2aXR5Iik7DQoNCndoaWxlKG5vdFN0b3BwZWQoKSl7DQogIHZhciBsaXN0ID0gY2xhc3NOYW1lKCJBYnNMaXN0VmlldyIpLmZpbmRPbmUoKTsNCiAgbGlzdC5jaGlsZHJlbigpLmVhY2goZnVuY3Rpb24oY2hpbGQpew0KICAgICAgaWYoIWNoaWxkKQ0KICAgICAgICByZXR1cm47DQogICAgICB2YXIgbCA9IGNoaWxkLmZpbmRCeVRleHQoIijlpb3lj4spIik7DQogICAgICBpZihsLnNpemUoKSA+IDApew0KICAgICAgICAgdmFyIGxpa2UgPSBjaGlsZC5maW5kT25lKGNsYXNzTmFtZSgiSW1hZ2VWaWV3IikuZGVzYygi6LWeIikpOw0KICAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IDEwOyBpKyspew0KICAgICAgICAgICAgbGlrZS5jbGljaygpOw0KICAgICAgICAgICAgc2xlZXAo5bu26L+fKTsNCiAgICAgICAgIH0NCiAgICAgIH0NCiAgfSk7DQogIGNsaWNrKCLmmL7npLrmm7TlpJoiKTsNCiAgY2xpY2soIuaYvuekuuabtOWkmiIpOw0KICBpZihjdXJyZW50QWN0aXZpdHkoKSA9PSAiY29tLnRlbmNlbnQubW9iaWxlcXEuYWN0aXZpdHkuVmlzaXRvcnNBY3Rpdml0eSIpew0KICAgICBsaXN0LnNjcm9sbEZvcndhcmQoKTsNCiAgfQ0KfQ=="),
b64("ImF1dG8iOw0KDQpsYXVuY2hBcHAoIlFRIik7DQp0b2FzdCgi6K+35omT5byA5LiA5Liq6IGK5aSp56qX5Y+j77yM5bCG5Lya5b6q546v5Y+R6YCB56ys5LiA5byg5Zu+54mHMTAw5qyhIik7DQoNCndoaWxlKCFpZCgiaXZUaXRsZUJ0blJpZ2h0SW1hZ2UiKS5leGlzdHMoKSk7DQoNCnZhciBsaXN0UGFyZW50ID0gY2xhc3NOYW1lKCJBYnNMaXN0VmlldyIpLmZpbmRPbmUoKS5wYXJlbnQoKTsNCnZhciBpY29ucyA9IGxpc3RQYXJlbnQuY2hpbGQobGlzdFBhcmVudC5jaGlsZENvdW50KCkgLSAyKTsNCmljb25zLmNoaWxkKDEpLmNsaWNrKCk7DQpzbGVlcCgyMDApOw0KDQpmb3IoaSA9IDA7IGkgPCAxMDA7aSsrKXsNCiBjbGFzc05hbWUoIkNoZWNrQm94IikudW50aWxGaW5kT25lKCkuY2xpY2soKTsNCiBzbGVlcCgyMDApOw0KIGlkKCJzZW5kX2J0biIpLmNsaWNrKCk7DQp9"),
b64("ImF1dG8iOw0KDQpsYXVuY2hBcHAoIlFRIik7DQoNCnRvYXN0KCLlnKjlpb3lj4vliJfooajkuK3ngrnosIHliKDosIEiKTsNCg0Kd2hpbGUodHJ1ZSl7DQogICAgd2hpbGUoIWNsaWNrKCLmm7TlpJoiKSk7DQogICAgd2hpbGUoIWNsaWNrKCLliKDpmaTlpb3lj4siKSk7DQogICAgc2xlZXAoMzAwKTsNCiAgICB3aGlsZSghY2xpY2soIuWIoOmZpOWlveWPiyIpKTsNCn0="),
b64("ImF1dG8iOwoKbGF1bmNoQXBwKCJRUSIpOwp0b2FzdCgi6K+35omT5byA5paw5pyL5Y+L55WM6Z2i5bm26Ieq6KGM5LiL5ruRIik7Cgp3aGlsZSh0cnVlKXsKICB0ZXh0KCLlkIzmhI8iKS5jbGlja2FibGUoKS5maW5kT25lKCkuY2xpY2soKTsKICBzbGVlcCgxNTAwKTsKICBjbGljaygi5a6M5oiQIik7CiAgc2xlZXAoMTAwMCk7Cn0="),
b64("ImF1dG8iOw0KDQpsYXVuY2hBcHAoIlFRIik7DQpzbGVlcCg1MDApOw0KaWYoY3VycmVudEFjdGl2aXR5KCkgIT0gImNvbS50ZW5jZW50Lm1vYmlsZXFxLmFjdGl2aXR5LlRyb29wTWVtYmVyTGlzdEFjdGl2aXR5Iil7DQogICAgIHRvYXN0KCLor7fmiZPlvIDopoHngrnotZ7nmoTnvqTnmoTogYrlpKnnqpflj6MiKTsNCiAgICAgb3Blbkdyb3VwTWVtYmVyTGlzdCgpOw0KfQ0KDQp3aGlsZSh0cnVlKXsNCgl2YXIgbGlzdCA9IGNsYXNzTmFtZSgiQWJzTGlzdFZpZXciKS5maW5kT25lKCk7DQoJdmFyIGNvdW50ID0gbGlzdC5jaGlsZENvdW50KCk7DQoJZm9yKHZhciBpID0gMDsgaSA8IGNvdW50OyBpKyspew0KCSAgICB2YXIgY2hpbGQgPSBsaXN0LmNoaWxkKGkpOw0KCSAgICBpZighY2hpbGQgfHwgY2hpbGQuY2xhc3NOYW1lKCkgIT0gImFuZHJvaWQud2lkZ2V0LkZyYW1lTGF5b3V0Iil7DQogICAgICAgICAgICBjb250aW51ZTsNCiAgICAgICAgfQ0KICAgICAgICBpZighaXNHcm91cE1lbWJlcihjaGlsZCkgfHwgaXNNeXNlbGYoY2hpbGQpKXsNCiAgICAgICAgICAgIGNvbnRpbnVlOw0KICAgICAgICB9DQogICAgICAgIGNoaWxkLmNoaWxkKDApLmNsaWNrKCk7DQogICAgICAgIHNsZWVwKDUwMCk7DQogICAgICAgIGxpa2UoKTsNCiAgICAgICAgd2hpbGUoIWNsaWNrKCLov5Tlm54iKSk7DQogICAgICAgIHdoaWxlKCFjbGljaygi5oiQ5ZGY6LWE5paZIikpOw0KICAgICAgICB3aGlsZSghY2xpY2soIui/lOWbniIpKTsNCiAgICAgICAgc2xlZXAoNTAwKTsNCgl9DQoJbGlzdC5zY3JvbGxGb3J3YXJkKCk7DQp9DQoNCg0KZnVuY3Rpb24gaXNHcm91cE1lbWJlcihjaGlsZCl7DQogICAgdmFyIHR2TmFtZSA9IGNoaWxkLmZpbmRPbmUoaWQoInR2X25hbWUiKSk7DQogICAgaWYoIXR2TmFtZSl7DQogICAgICByZXR1cm4gZmFsc2U7DQogICAgfQ0KICAgIGxvZyh0dk5hbWUudGV4dCgpKTsNCglyZXR1cm4gdHZOYW1lLnRleHQoKSAhPSAiQmFieSBRIjsNCn0NCg0KZnVuY3Rpb24gaXNNeXNlbGYoY2hpbGQpew0KCXZhciBpID0gY2hpbGQuZmluZE9uZSh0ZXh0KCLmiJEiKSk7DQoJaWYoIWkpew0KCSAgcmV0dXJuIGZhbHNlOw0KCX0NCglyZXR1cm4gaS5pZCgpICYmICFpLmlkKCkuZW5kc1dpdGgoInR2X25hbWUiKTsNCn0NCg0KZnVuY3Rpb24gbGlrZSgpew0KCXdoaWxlKCFjbGljaygi5pu05aSaIikpOw0KCXdoaWxlKCFjbGljaygi5p+l55yL5Liq5Lq66LWE5paZ5Y2hIikpOw0KCXZhciBsaWtlQnRuID0gZGVzY0VuZHNXaXRoKCLngrnlh7vlj6/otZ4iKS5maW5kT25lKCk7DQoJZm9yKGxldCBpID0gMDsgaSA8IDEwOyBpKyspew0KCQlsaWtlQnRuLmNsaWNrKCk7DQoJCXNsZWVwKDEwMCk7DQoJfQ0KfQ0KDQpmdW5jdGlvbiBnZXRRUSgpew0KCXZhciBxcSA9IHRleHRNYXRjaGVzKCJcXGR7NSwxMn0iKS5maW5kT25lKCkudGV4dCgpOw0KCXJldHVybiBxcTsNCn0NCg0KZnVuY3Rpb24gb3Blbkdyb3VwTWVtYmVyTGlzdCgpew0KICAgIGRlc2MoIue+pOi1hOaWmeWNoSIpLmNsaWNrKCk7DQogICAgdmFyIGdyb3VwTWVtYmVyQ291bnRWaWV3ID0gdGV4dEVuZHNXaXRoKCLlkI3miJDlkZgiKS5maW5kT25lKCk7DQogICAgdmFyIGdyb3VwTWVtYmVyQ291bnQgPSBwYXJzZUludCgvXGQrLy5leGVjKGdyb3VwTWVtYmVyQ291bnRWaWV3LnRleHQoKSlbMF0pOw0KICAgIGdyb3VwTWVtYmVyQ291bnRWaWV3LnBhcmVudCgpLmNsaWNrKCk7DQogICAgc2xlZXAoZ3JvdXBNZW1iZXJDb3VudCAqIDQpOw0KfQ=="),
b64("ImF1dG8iOwoKdmFyIOW7tui/nyA9IDA7CgppZighcmVxdWVzdFNjcmVlbkNhcHR1cmUoKSl7CiAgICB0b2FzdCgi6K+35rGC5oiq5Zu+5aSx6LSlIik7CiAgICBzdG9wKCk7Cn0KCnZhciBjYXB0dXJlOwoKZnVuY3Rpb24gbGlrZSgpewogIGNhcHR1cmUgPSBjYXB0dXJlU2NyZWVuKCk7CiAgY2xhc3NOYW1lKCJBYnNMaXN0VmlldyIpLmZpbmRPbmUoKQogICAuY2hpbGRyZW4oKS5lYWNoKGZ1bmN0aW9uKHNzKXsKICAgICAgdHJ5ewogICAgICAgIHZhciBpY29uTGluZSA9IGZpbmRJY29uTGluZShzcyk7CiAgICAgICAgaWYoaWNvbkxpbmUpewogICAgICAgICAgIHZhciBsaWtlSWNvbiA9IGljb25MaW5lLmNoaWxkKDEpLmNoaWxkKDApOyAgICAgICAgICAKICAgICAgICAgICBpZihub3RMaWtlZChsaWtlSWNvbikpewogICAgICAgICAgICAgICBsaWtlSWNvbi5jbGljaygpOwogICAgICAgICAgIH0KICAgICAgICAgICBpZijlu7bov58gPiAwKXsKICAgICAgICAgICAgIHNsZWVwKOW7tui/nyk7CiAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgfWNhdGNoKGUpewogICAgICAgIGxvZyhlKTsKICAgICAgfQogICB9KTsKfQogICAgICAgIAogICAgICAgIApmdW5jdGlvbiBmaW5kSWNvbkxpbmUocyl7CiAgZm9yKGxldCBpID0gMDsgaSA8IHMuZ2V0Q2hpbGRDb3VudCgpOyBpKyspewogICAgdmFyIGNoaWxkID0gcy5jaGlsZChpKTsKICAgIGlmKGNoaWxkICYmIGNoaWxkLmNsYXNzTmFtZSgpCiAgICAgICAuZW5kc1dpdGgoIlJlbGF0aXZlTGF5b3V0IikgJiYKICAgICAgIGNoaWxkLmdldENoaWxkQ291bnQoKSA+PSA0KXsKICAgICAgIGlmKGlzSW1hZ2UoY2hpbGQuY2hpbGQoMSkpICYmCiAgICAgICAgICAgaXNJbWFnZShjaGlsZC5jaGlsZCgyKSkgJiYKICAgICAgICAgICBpc0ltYWdlKGNoaWxkLmNoaWxkKDMpKSl7CiAgICAgICAgIHJldHVybiBjaGlsZDsKICAgICAgIH0KICAgIH0KICB9Cn0KICAgICAgICAgICAKZnVuY3Rpb24gaXNJbWFnZShpdGVtKXsKICBpZighaXRlbSl7CiAgICByZXR1cm4gZmFsc2U7CiAgfQogIGlmKGl0ZW0uY2xhc3NOYW1lKCkuZW5kc1dpdGgoIkltYWdlVmlldyIpKXsKICAgIHJldHVybiB0cnVlOwogIH0KICBpZihpdGVtLmNoaWxkQ291bnQoKSA9PSAxKXsKICAgIHJldHVybiBpc0ltYWdlKGl0ZW0uY2hpbGQoMCkpOwogIH0KICByZXR1cm4gZmFsc2U7Cn0KCmZ1bmN0aW9uIG5vdExpa2VkKGxpa2VJY29uKXsKICAgIHZhciB4ID0gbGlrZUljb24uYm91bmRzKCkuY2VudGVyWCgpOwogICAgdmFyIHkgPSBsaWtlSWNvbi5ib3VuZHMoKS5jZW50ZXJZKCk7CiAgICByZXR1cm4gaW1hZ2VzLmRldGVjdHNDb2xvcihjYXB0dXJlLCAweDc2Nzg4NiwgeCwgeSk7Cn0KCnRvYXN0KCLor7fmiZPlvIBRUeepuumXtOW5tuaFouaFouS4i+a7kSIpOwp3aGlsZSh0cnVlKXsKICBsaWtlKCk7Cn0="),
b64("ImF1dG8iOw0KbGF1bmNoKCJjb20udGVuY2VudC5tb2JpbGVxcSIpOw0KdG9hc3QoIuivt+aJk+W8gOS4gOS4quiBiuWkqeeql+WPoyIpOw0KdG9hc3QoIuWHuueOsOe6ouWMheaXtuWwhuS8muiHquWKqOaLhuW8gOW5tuWFs+mXrSIpOw0Kd2hpbGUoIWlzU3RvcHBlZCgpKXsNCiAgaWYoY2xpY2soIueCueWHu+aLhuW8gCIpKXsNCiAgICAvL+aLhuW8gOe6ouWMheWQjuWwneivlTEw5qyh5YWz6Zet57qi5YyF6aG16Z2iDQogICAgZm9yKGxldCBpID0gMDsgaSA8IDEwOyBpKyspew0KICAgICAgICBzbGVlcCgzMDApOw0KICAgICAgICBpZihjbGljaygi5YWz6ZetIikpDQogICAgICAgICAgYnJlYWs7DQogICAgfQ0KICB9DQp9"),
b64("ImF1dG8iOwoKdmFyIOW7tui/nyA9IDIwMDsKCmZ1bmN0aW9uIOS4i+a7kSgpewogIGNsYXNzTmFtZSgiQWJzTGlzdFZpZXciKS5zY3JvbGxhYmxlKCkuc2Nyb2xsRm9yd2FyZCgpOwp9CgpmdW5jdGlvbiDotZ4oKXsKICBjbGFzc05hbWUoIkltYWdlVmlldyIpLmRlc2MoIui1niIpLnVudGlsRmluZCgpCiAgICAuZWFjaChmdW5jdGlvbihpdGVtKXsKICAgICAgZm9yKHZhciBpID0gMDsgaSA8IDEwOyBpKyspewogICAgICAgIGl0ZW0uY2xpY2soKTsKICAgICAgICBzbGVlcCjlu7bov58pOwogICAgICB9CiAgICB9KTsKfQoKZnVuY3Rpb24g5pi+56S65pu05aSaKCl7CiAgZm9yKGxldCBpID0gMDsgaSA8IDI7aSsrKXsKICAgIGNsaWNrKCLmmL7npLrmm7TlpJoiKTsKICAgfSAKfQoKdG9hc3QoIuivt+aJk+W8gOiHquW3seeahOi1hOaWmemhte+8jOeCueWHu+eCuei1nuWbvuaghyIpOwpzbGVlcCgxMDAwKTsKCndoaWxlKG5vdFN0b3BwZWQoKSl7CiAg6LWeKCk7CiAg5pi+56S65pu05aSaKCk7CiAg5LiL5ruRKCk7Cn0="),
b64("ImF1dG8iOw0KDQppZiAoY29uZmlybSgi5bCG5Lya5Y+W5YWz5omA5pyJ5YWs5LyX5Y+377yM5piv5ZCm57un57utIikpIHsNCiAgICB1bmZvbGxvd0FsbCgpOw0KfQ0KDQpmdW5jdGlvbiB1bmZvbGxvd0FsbCgpIHsNCiAgICBsYXVuY2hBcHAoIuW+ruS/oSIpOw0KICAgIHNsZWVwKDEwMDApOw0KICAgIHdoaWxlICghY2xpY2soIumAmuiur+W9lSIpKTsNCiAgICB3aGlsZSAoIWNsaWNrKCLlhazkvJflj7ciKSk7DQogICAgc2xlZXAoNTAwKTsNCiAgICB3aGlsZSAodHJ1ZSkgew0KICAgICAgICBjbGFzc05hbWUoIkxpc3RWaWV3IikuZmluZE9uZSgpLmNoaWxkcmVuKCkuZWFjaChmdW5jdGlvbihpdGVtKSB7DQogICAgICAgICAgICBpZiAoaXRlbS5sb25nQ2xpY2thYmxlKCkpIHsNCiAgICAgICAgICAgICAgICB1bmZvbGxvdyhpdGVtKTsNCiAgICAgICAgICAgICAgICBzbGVlcCg0MDApOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICB9DQp9DQoNCmZ1bmN0aW9uIHVuZm9sbG93KGl0ZW0pIHsNCiAgICBpdGVtLmxvbmdDbGljaygpOw0KICAgIHdoaWxlICghY2xpY2soIuWPlua2iOWFs+azqCIpKTsNCiAgICB3aGlsZSAoIWNsaWNrKCLkuI3lho3lhbPms6giKSk7DQp9DQo="),
b64("ImF1dG8iOwoKCi8v5ryP6LWe6L+H5aSa6K+356iN5b6u6LCD5aSn5bu26L+fCnZhciDlu7bov58gPSAyMDA7CgpsYXVuY2hBcHAoIlFRIik7Ci8v54K55Ye76IGU57O75Lq65Zu+5qCHCmNsYXNzTmFtZSgiVGFiV2lkZ2V0IikuZmluZE9uZSgpLmNoaWxkKDEpLmNsaWNrKCk7CnRvYXN0KCLor7flsZXlvIDopoHngrnotZ7nmoTliIbnu4QiKTsKdmFyIGZhaWwgPSAwOwoKd2hpbGUodHJ1ZSl7CgogIHZhciBsaXN0ID0gaWQoImVsdl9idWRkaWVzIikuY2xhc3NOYW1lKCJBYnNMaXN0VmlldyIpLmZpbmRPbmUoKTsKICB2YXIgY291bnQgPSBsaXN0LmNoaWxkQ291bnQoKTsKICBwcmludCgiY291bnQiICsgbGlzdC5jaGlsZENvdW50KCkpOwogIAogIGZvcihsZXQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKXsKICAgIHRyeXsKICAgICAgbGV0IGNoaWxkID0gbGlzdC5jaGlsZChpKTsKICAgICAgcHJpbnQoaSk7CiAgICAgIGlmKGlzRnJpZW5kKGNoaWxkKSl7CiAgICAgICAgLy/ngrnov5vlpb3lj4vlkI3niYcKICAgICAgICBjaGlsZC5jbGljaygpOwogICAgICAgIGZhdigxMCk7CiAgICAgICAgYmFja1RvTGlzdCgpOwogICAgICAgIHNsZWVwKOW7tui/nyk7CiAgICAgIH0KICAgIH1jYXRjaChlKXsKICAgICAgZmFpbCsrOwogICAgICB0b2FzdCgi5Y+v6IO95ryP6LWeOiIgKyBmYWlsKTsKICAgIH0KICB9CiAgbGlzdC5zY3JvbGxGb3J3YXJkKCk7Cn0KCi8v54K56LWeCmZ1bmN0aW9uIGZhdih0aW1lcyl7CiAgdmFyIGkgPSAwOwogIHZhciBidG4gPSBkZXNjRW5kc1dpdGgoIueCueWHu+WPr+i1niIpLmZpbmRPbmUoKTsKICB3aGlsZShpIDwgdGltZXMpewogICAgaSArPSBidG4uY2xpY2soKT8gMSA6IDA7CiAgfQp9CgovL+WIpOaWreaYr+WQpuaYr+WlveWPi+eahOinhuWbvgpmdW5jdGlvbiBpc0ZyaWVuZChjaGlsZCl7CiAgcmV0dXJuIGNoaWxkICYmIGNoaWxkLmNsYXNzTmFtZSgpLmVuZHNXaXRoKCJMaW5lYXJMYXlvdXQiKSAmJiBjaGlsZC5jaGlsZENvdW50KCkgPT0gMiAmJiBjaGlsZC5jaGlsZCgwKS5jbGFzc05hbWUoKS5lbmRzV2l0aCgiRnJhbWVMYXlvdXQiKTsKfQoKLy/ov5Tlm57lpb3lj4vliJfooagKZnVuY3Rpb24gYmFja1RvTGlzdCgpewogIGlkKCJpdlRpdGxlQnRuTGVmdCIpLmNsaWNrKCk7Cn0="),
b64("ImF1dG8iOwppbXBvcnRDbGFzcyhhbmRyb2lkLmNvbnRlbnQuSW50ZW50KTsKaW1wb3J0Q2xhc3MoYW5kcm9pZC5uZXQuVXJpKTsKaW1wb3J0Q2xhc3MoYW5kcm9pZC5wcm92aWRlci5TZXR0aW5ncyk7CgoKb3BlbkFwcFNldHRpbmcoImNvbS50ZW5jZW50Lm1vYmlsZXFxIik7CndoaWxlKCFjdXJyZW50UGFja2FnZSgpLmVxdWFscygiY29tLmFuZHJvaWQuc2V0dGluZ3MiKSk7CndoaWxlKCFjbGljaygi6YCa55+lIikpOwp3aGlsZSghY2xpY2soIuWFqOmDqOmYu+atoiIpKTsKIA=="),
b64("YXV0bygiZmFzdCIpOw0KDQoNCnRvYXN0KCLor7fmiZPlvIDkuIDkuKrogYrlpKnnqpflj6MiKTsNCnNsZWVwKDUwMCk7DQoNCndoaWxlKHRydWUpew0KICAgIGlmKGN1cnJlbnRQYWNrYWdlKCkgPT0gImNvbS5zdGFyZHVzdC5zY3JpcHRkcm9pZCIpew0KICAgICAgICBzbGVlcCgzMDApOw0KICAgICAgICBjb250aW51ZTsNCiAgICB9DQogICAgc2V0VGV4dCgi5oiR5Zac5qyi5L2gIik7DQogICAgY2xpY2soIuWPkemAgSIpOw0KfQ=="),
b64("ImF1dG8iOwoKd2hpbGUodHJ1ZSl7CiAgICBpZihpZCgiaTQiKS51bnRpbEZpbmRPbmUoKS5wYXJlbnQoKS5wYXJlbnQoKS5jbGljaygpKXsKICAgICAgc2xlZXAoNzAwKTsKICAgICAgYmFjaygpOwogICAgfQp9"),
b64("ImF1dG8iOw0Kd2hpbGUgKHRydWUpIHsNCgljbGFzc05hbWUoIkltYWdlQnV0dG9uIikuZGVzY1N0YXJ0c1dpdGgoIuabtOWkmuWKn+iDveaMiemSriIpLmNsaWNrKCk7DQoJd2hpbGUoIWNsaWNrKCLnm7jlhowiKSk7DQoJc2xlZXAoNTAwKTsNCgljbGFzc05hbWUoIkdyaWRWaWV3IikuZmluZE9uZSgpLmNoaWxkKDEpLmNsaWNrKCk7DQoJc2xlZXAoMjAwKTsNCgl3aGlsZSghY2xpY2soIuWPkemAgSIpKTsNCglzbGVlcCgzMDApOw0KfQ0KDQo="),
b64("ImF1dG8iOw0KbGF1bmNoKCJjb20udGVuY2VudC5tbSIpOw0Kc2xlZXAoNTAwKTsNCndoaWxlKCFjbGljaygi5Y+R546wIikpOw0Kd2hpbGUoIWNsaWNrKCLmiavkuIDmiasiKSk7"),
b64("ImF1dG8iOw0KDQpsYXVuY2hBcHAoIuW+ruS/oSIpOw0Kd2hpbGUoIWNsaWNrKCLpgJrorq/lvZUiKSk7DQoNCnRvYXN0KCLlnKjlpb3lj4vliJfooajkuK3ngrnosIHliKDosIHjgILooqvliKDpmaTnmoTlpb3lj4vlsIblnKjml6Xlv5fkuK3orrDlvZXjgIIiKTsNCndoaWxlKHRydWUpew0KICBpZihkZXNjKCLmm7TlpJoiKS5leGlzdHMoKSl7DQogICAgICB2YXIgd2VDaGF0SWQgPSB0ZXh0Q29udGFpbnMoIuW+ruS/oeWPtyIpLmZpbmQoKTsNCiAgICAgIGlmKHdlQ2hhdElkICYmIHdlQ2hhdElkLnNpemUoKSl7DQogICAgICAgICBjb25zb2xlLmxvZyh3ZUNoYXRJZC5nZXQoMCkudGV4dCgpKTsNCiAgICAgIH0NCiAgICAgIHdoaWxlKCFkZXNjKCLmm7TlpJoiKS5jbGljaygpKTsNCiAgICAgIHdoaWxlKCFjbGljaygi5Yig6ZmkIikpOw0KICAgICAgd2hpbGUoIWNsaWNrKCLliKDpmaQiKSk7DQogICAgICBzbGVlcCgyMDApOw0KICB9DQp9"),
b64("ImF1dG8iOw0KDQpsYXVuY2hBcHAoIuW+ruS/oSIpOw0Kc2xlZXAoNTAwKTsNCndoaWxlKCFjbGljaygi5Y+R546wIikpOw0Kd2hpbGUoIWNsaWNrKCLmnIvlj4vlnIgiKSk7DQpkZXNjQ29udGFpbnMoIuaIkeeahOWktOWDjyIpLmNsaWNrKCk7DQp0b2FzdCgi6K+354K55Ye76KaB5Yig6Zmk55qE5pyL5Y+L5ZyIIik7DQoNCndoaWxlKHRydWUpew0KICAgIGRlbGV0ZVBvc3QoKTsNCiAgICBzbGVlcCgyMDApOw0KfQ0KDQoNCmZ1bmN0aW9uIGRlbGV0ZVBvc3QoKXsNCiAgICB2YXIgaXNQaG90byA9IGRlc2MoIuabtOWkmiIpLmV4aXN0cygpOw0KICAgIGlmKGlzUGhvdG8pew0KICAgICAgICBkZXNjKCLmm7TlpJoiKS5jbGljaygpOw0KICAgIH0NCiAgICBpZihjbGljaygi5Yig6ZmkIikpew0KICAgICAgICB3aGlsZSghY2xpY2soIuehruWumiIpKTsNCiAgICAgICAgc2xlZXAoMjAwKTsNCiAgICAgICAgaWYoaXNQaG90byl7DQogICAgICAgICAgICB3aGlsZSghYmFjaygpKTsNCiAgICAgICAgfQ0KICAgIH0NCg0KfQ=="),
b64("ImF1dG8iOw0KbGF1bmNoQXBwKCLlvq7kv6EiKTsNCmVudGVyT2ZmaWNpYWxBY2NvdW50cygpOw0Kc2xlZXAoMjAwKTsNCnRvYXN0KCLor7fngrnlh7vopoHlj5blhbPnmoTlhazkvJflj7ciKTsNCndoaWxlKHRydWUpew0KICAgIC8v54K55Ye75Y+z5LiK6KeS5bCP5Lq65Zu+5qCHDQogICAgZGVzYygi6IGK5aSp5L+h5oGvIikuZmluZE9uZSgpLmNsaWNrKCk7DQogICAgLy/ojrflj5blvq7kv6Hlj7flubborrDlvZUNCiAgICB2YXIgd2VDaGF0SWQgPSB0ZXh0Q29udGFpbnMoIuW+ruS/oeWPtyIpLmZpbmRPbmUoKTsNCiAgICBjb25zb2xlLmxvZygi5Y+W5YWzOiAiICsgd2VDaGF0SWQudGV4dCgpKTsNCiAgICAvL+eCueWHu+WPs+S4iuinkuS4ieS4quWwj+eCueWEvw0KICAgIGRlc2MoIuabtOWkmiIpLmZpbmRPbmUoKS5jbGljaygpOw0KICAgIHdoaWxlKCFjbGljaygi5LiN5YaN5YWz5rOoIikpOw0KICAgIHNsZWVwKDIwMCk7DQogICAgd2hpbGUoIWNsaWNrKCLkuI3lho3lhbPms6giKSk7DQogICAgc2xlZXAoMjAwKTsNCiAgICBlbnRlck9mZmljaWFsQWNjb3VudHMoKTsNCn0NCg0KLy/ov5vlhaXlhazkvJflj7fnlYzpnaINCmZ1bmN0aW9uIGVudGVyT2ZmaWNpYWxBY2NvdW50cygpew0KICAgIHdoaWxlKCFjbGljaygi6YCa6K6v5b2VIikpOw0KICAgIHdoaWxlKCFjbGljaygi5YWs5LyX5Y+3IikpOw0KfQ=="),
b64("ImF1dG8iOw0KbGF1bmNoQXBwKCLmlK/ku5jlrp0iKTsNCnNsZWVwKDgwMCk7DQp3aGlsZSghY2xpY2soIuaJq+S4gOaJqyIpKTs="),
b64("ImF1dG8iOwoKLy/kuIvmu5EKZnVuY3Rpb24gc2Nyb2xsKCl7CiAgY2xhc3NOYW1lKCJMaXN0VmlldyIpLnNjcm9sbEZvcndhcmQoKTsKfQoKLy/lsJ3or5XngrnotZ4KZnVuY3Rpb24gdHJ5RmF2KGJ0bil7CiAgYnRuLmNsaWNrKCk7CiAgc2xlZXAoMzAwKTsKICBpZighY2xpY2soIui1niIpKXsKICAgIGJ0bi5jbGljaygpOwogIH0KfQoKd2hpbGUodHJ1ZSl7CiAgICB2YXIgYyA9IGNsYXNzTmFtZSgiSW1hZ2VWaWV3IikuZGVzYygi6K+E6K66IikudW50aWxGaW5kKCk7CiAgICBjLmVhY2goZnVuY3Rpb24oYnRuKXsKICAgICAgICB0cnlGYXYoYnRuKTsKICAgIH0pOwogICAgc2Nyb2xsKCk7Cn0="),
b64("ImF1dG8iOw0KDQp0b2FzdCgi5pys6ISa5pys6ZyA6KaB5ZKM5ZCN54mH54K56LWe6ISa5pys5ZCM5pe26L+Q6KGM5omN5pyJ5pWIIik7DQoNCndoaWxlKHRydWUpew0KICAgIGlmKGN1cnJlbnRBY3Rpdml0eSgpID09ICJjb20udGVuY2VudC5tb2JpbGVxcS5hY3Rpdml0eS5WaXNpdG9yc0FjdGl2aXR5Iil7DQogICAgICAgIGNsaWNrKCLlj5bmtogiKTsNCiAgICAgICAgc2xlZXAoMzAwKTsNCiAgICB9DQp9")
],
[
b64("c2hlbGwoInBtIGRpc2FibGUgY29tLm5ldGVhc2UuY2xvdWRtdXNpYyIsIHRydWUpOw=="),
b64("c2hlbGwoImFtIHN0YXJ0IC1uIGNvbS50ZW5jZW50Lm1tL2NvbS50ZW5jZW50Lm1tLnBsdWdpbi5zY2FubmVyLnVpLkJhc2VTY2FuVUkiLCB0cnVlKTsNCg=="),
b64("c2hlbGwoImFtIHN0YXJ0IC1uIGNvbS5lZy5hbmRyb2lkLkFsaXBheUdwaG9uZS9jb20uYWxpcGF5Lm1vYmlsZS5zY2FuLmFzLm1haW4uTWFpbkNhcHR1cmVBY3Rpdml0eSIsIHRydWUpOw=="),
b64("c2hlbGwoImFtIGtpbGwtYWxsIiwgdHJ1ZSk7"),
b64("c2hlbGwoInBtIGVuYWJsZSBjb20ubmV0ZWFzZS5jbG91ZG11c2ljIiwgdHJ1ZSk7DQpsYXVuY2hBcHAoIue9keaYk+S6kemfs+S5kCIpOw=="),
b64("S2V5Q29kZSgiS0VZQ09ERV9QT1dFUiIpOw0KLy/miJbogIUgS2V5Q29kZSgyNik7")
],
[
b64("YXV0bygpOw0KZXZlbnRzLm9ic2VydmVOb3RpZmljYXRpb24oKTsNCmV2ZW50cy5vblRvYXN0KGZ1bmN0aW9uKHRvYXN0KXsNCiAgICB2YXIgcGtnID0gdG9hc3QuZ2V0UGFja2FnZU5hbWUoKTsNCiAgICBsb2coIlRvYXN05YaF5a65OiAiICsgdG9hc3QuZ2V0VGV4dCgpICsNCiAgICAgICAgIiDmnaXoh6o6ICIgKyBnZXRBcHBOYW1lKHBrZykgKw0KICAgICAgICAiIOWMheWQjTogIiArIHBrZyk7DQp9KTsNCnRvYXN0KCLnm5HlkKzkuK3vvIzor7flnKjml6Xlv5fkuK3mn6XnnIvorrDlvZXnmoRUb2FzdOWPiuWFtuWGheWuuSIpOw=="),
b64("ImF1dG8iOw0KDQpldmVudHMub2JzZXJ2ZUtleSgpOw0KDQp2YXIga2V5TmFtZXMgPSB7DQogICAgIktFWUNPREVfVk9MVU1FX1VQIjogIumfs+mHj+S4iumUriIsDQogICAgIktFWUNPREVfVk9MVU1FX0RPV04iOiAi6Z+z6YeP5LiL6ZSuIiwNCiAgICAiS0VZQ09ERV9IT01FIjogIkhvbWXplK4iLA0KICAgICJLRVlDT0RFX0JBQ0siOiAi6L+U5Zue6ZSuIiwNCiAgICAiS0VZQ09ERV9NRU5VIjogIuiPnOWNlemUriIsDQogICAgIktFWUNPREVfUE9XRVIiOiAi55S15rqQ6ZSuIiwNCn07DQoNCmV2ZW50cy5vbigia2V5IiwgZnVuY3Rpb24oY29kZSwgZXZlbnQpew0KICAgIHZhciBrZXlOYW1lID0gZ2V0S2V5TmFtZShjb2RlLCBldmVudCk7DQogICAgaWYoZXZlbnQuZ2V0QWN0aW9uKCkgPT0gZXZlbnQuQUNUSU9OX0RPV04pew0KICAgICAgICB0b2FzdChrZXlOYW1lICsgIuiiq+aMieS4iyIpOw0KICAgIH1lbHNlIGlmKGV2ZW50LmdldEFjdGlvbigpID09IGV2ZW50LkFDVElPTl9VUCl7DQogICAgICAgIHRvYXN0KGtleU5hbWUgKyAi5by56LW3Iik7DQogICAgfQ0KfSk7DQoNCmxvb3AoKTsNCg0KDQoNCmZ1bmN0aW9uIGdldEtleU5hbWUoY29kZSwgZXZlbnQpew0KICAgIHZhciBrZXlDb2RlU3RyID0gZXZlbnQua2V5Q29kZVRvU3RyaW5nKGNvZGUpOw0KICAgIHZhciBrZXlOYW1lID0ga2V5TmFtZXNba2V5Q29kZVN0cl07DQogICAgaWYoIWtleU5hbWUpew0KICAgICAgICByZXR1cm4ga2V5Q29kZVN0cjsNCiAgICB9DQogICAgcmV0dXJuIGtleU5hbWU7DQp9"),
b64("DQpldmVudHMub2JzZXJ2ZVRvdWNoKCk7DQoNCmV2ZW50cy5zZXRUb3VjaEV2ZW50VGltZW91dCgzMCk7DQoNCnRvYXN0KCLor7flnKjml6Xlv5fkuK3mn6XnnIvop6bmkbjnmoTngrnnmoTlnZDmoIciKTsNCg0KZXZlbnRzLm9uKCJ0b3VjaCIsIGZ1bmN0aW9uKHBvaW50KXsNCiAgICBsb2cocG9pbnQpOw0KfSk7DQoNCmxvb3AoKTs="),
b64("YXV0bygpOw0KZXZlbnRzLm9ic2VydmVOb3RpZmljYXRpb24oKTsNCmV2ZW50cy5vbk5vdGlmaWNhdGlvbihmdW5jdGlvbihpbmZvLCBub3RpZmljYXRpb24pew0KICAgIHByaW50Tm90aWZpY2F0aW9uKGluZm8sIG5vdGlmaWNhdGlvbik7DQp9KTsNCnRvYXN0KCLnm5HlkKzkuK3vvIzor7flnKjml6Xlv5fkuK3mn6XnnIvorrDlvZXnmoTpgJrnn6Xlj4rlhbblhoXlrrkiKTsNCg0KZnVuY3Rpb24gcHJpbnROb3RpZmljYXRpb24oaW5mbywgbm90aWZpY2F0aW9uKXsNCiAgICBsb2coIuW6lOeUqOWMheWQjTogIiArIGluZm8uZ2V0UGFja2FnZU5hbWUoKSk7DQogICAgbG9nKCLpgJrnn6XmlofmnKw6ICIgKyBpbmZvLmdldFRleHRzKCkpOw0KICAgIGxvZygi6YCa55+l5LyY5YWI57qnOiAiICsgbm90aWZpY2F0aW9uLnByaW9yaXR5KTsNCiAgICBsb2coIumAmuefpeebruW9lTogIiArIG5vdGlmaWNhdGlvbi5jYXRlZ29yeSk7DQogICAgbG9nKCLpgJrnn6XliJvlu7rml7bpl7Q6ICIgKyBuZXcgRGF0ZShub3RpZmljYXRpb24uY3JlYXRpb25UaW1lKSk7DQogICAgbG9nKCLpgJrnn6Xml7bpl7Q6ICIgKyBuZXcgRGF0ZShub3RpZmljYXRpb24ud2hlbikpOw0KICAgIGxvZygi6YCa55+l5pWwOiAiICsgbm90aWZpY2F0aW9uLm51bWJlcik7DQogICAgbG9nKCLpgJrnn6XmkZjopoE6ICIgKyBub3RpZmljYXRpb24udGlja2VyVGV4dCk7DQogICAgZm9yKHZhciBpID0gMDsgaSA8IG5vdGlmaWNhdGlvbi5hY3Rpb25zLmxlbmd0aDsgaSsrKXsNCiAgICAgICAgdmFyIGFjdGlvbiA9IG5vdGlmaWNhdGlvbi5hY3Rpb25zW2ldOw0KICAgICAgICBsb2coIumAmuefpSIgKyAoaSArIDEpICsgIjogIiArIGFjdGlvbi50aXRsZSk7DQogICAgfQ0KfQ=="),
b64("ImF1dG8iOw0KDQp2YXIg6ZW/5oyJ6Ze06ZqUID0gMTUwMDsNCg0KdmFyIGN1clBhY2thZ2UgPSBudWxsOw0KdmFyIHRpbWVvdXRJZCA9IG51bGw7DQoNCmV2ZW50cy5vYnNlcnZlS2V5KCk7DQoNCmV2ZW50cy5vbktleURvd24oImJhY2siLCBmdW5jdGlvbihldmVudCl7DQogICAgY3VyUGFja2FnZSA9IGN1cnJlbnRQYWNrYWdlKCk7DQogICAgdGltZW91dElkID0gc2V0VGltZW91dChmdW5jdGlvbigpew0KICAgICAgIGJhY2tCYWNrQmFja0JhY2soKTsNCiAgICB9LCDplb/mjInpl7TpmpQpOw0KfSk7DQoNCmV2ZW50cy5vbktleVVwKCJiYWNrIiwgZnVuY3Rpb24oZXZlbnQpew0KICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SWQpOw0KfSk7DQoNCmxvb3AoKTsNCg0KZnVuY3Rpb24gYmFja0JhY2tCYWNrQmFjaygpew0KICAgIHdoaWxlKGN1clBhY2thZ2UgPT0gY3VycmVudFBhY2thZ2UoKSl7DQogICAgICAgIGJhY2soKTsNCiAgICAgICAgc2xlZXAoMjAwKTsNCiAgICB9DQp9"),
b64("ImF1dG8iOw0KDQpldmVudHMub2JzZXJ2ZUtleSgpOw0KDQp2YXIgaW50ZXJ2YWwgPSA1MDAwOw0KdmFyIHRhc2sgPSB0YXNrMTsNCg0KZXZlbnRzLm9uS2V5RG93bigidm9sdW1lX3VwIiwgZnVuY3Rpb24oZXZlbnQpew0KICAgIGlmKHRhc2sgPT0gdGFzazEpew0KICAgICAgICB0YXNrID0gdGFzazI7DQogICAgfWVsc2V7DQogICAgICAgIHRhc2sgPSB0YXNrMTsNCiAgICB9DQogICAgdG9hc3QoIuS7u+WKoeW3suWIh+aNoiIpOw0KfSk7DQoNCmV2ZW50cy5vbktleURvd24oInZvbHVtZV9kb3duIiwgZnVuY3Rpb24oZXZlbnQpew0KICAgIHRvYXN0KCLnqIvluo/nu5PmnZ8iKTsNCiAgICBleGl0KCk7DQp9KTsNCg0KdGFzaygpOw0KDQpsb29wKCk7DQoNCmZ1bmN0aW9uIHRhc2sxKCl7DQogICAgdG9hc3QoIuS7u+WKoTHov5DooYzkuK3vvIzpn7Pph4/kuIvplK7nu5PmnZ/vvIzpn7Pph4/kuIrplK7liIfmjaLku7vliqEiKTsNCiAgICBzZXRUaW1lb3V0KHRhc2ssIGludGVydmFsKTsNCn0NCg0KZnVuY3Rpb24gdGFzazIoKXsNCiAgICB0b2FzdCgi5Lu75YqhMui/kOihjOS4re+8jOmfs+mHj+S4i+mUrue7k+adn++8jOmfs+mHj+S4iumUruWIh+aNouS7u+WKoSIpOw0KICAgIHNldFRpbWVvdXQodGFzaywgaW50ZXJ2YWwpOw0KfQ==")
],
[
b64("ImF1dG8iOwoKLy/muIXnqbrphbflronliqjmgIEKLy/pnIDopoHphbflronlrqLmiLfnq6/mlK/mjIEKLy/liqHlv4XosKjmhY7kvb/nlKjvvIHvvIHvvIEKLy9ieSBkYXpoYW5nMzI1NTI3MzIKdG9hc3QoIuato+WcqOWQr+WKqOmFt+WuiSIpOwpsYXVuY2goImNvbS5jb29sYXBrLm1hcmtldCIpOwpzbGVlcCgyMDAwKTsKd2hpbGUoIWNsaWNrKCLphbfluILlnLoiKSk7CndoaWxlKCFjbGljaygi5oiRIikpOwp3aGlsZSghY2xpY2soIuWKqOaAgSIpKTsKdG9hc3QoIuivt+azqOaEj++8jOWNs+WwhuW8gOWni+WIoOmZpOmFt+WuieWKqOaAge+8jOi/meWwhuS4jeWPr+aBouWkje+8jOivt+iwqOaFjuaTjeS9nO+8gSIpOwpzbGVlcCgzMDAwKTsKdG9hc3QoIuaTjeS9nOWwhuWcqOWNgeenkuWQjuiHquWKqOi/m+ihjO+8jOivt+iwqOaFjuaTjeS9nO+8gSIpOwpzbGVlcCg1MDAwKTsKdG9hc3QoIuaTjeS9nOWwhuWcqOS6lOenkuWQjuiHquWKqOi/m+ihjO+8jOivt+iwqOaFjuaTjeS9nO+8gSIpOwpzbGVlcCg1MDAwKTsKdG9hc3QoIuaTjeS9nOW8gOWni++8gSIpOwp3aGlsZSh0cnVlKXsKICAgIGlkKCJtb3JlX3ZpZXciKS5jbGljaygpOwogICAgd2hpbGUoIWNsaWNrKCLliKDpmaQiKSk7CiAgICB3aGlsZSghY2xpY2soIuehruWumiIpKTsKICAgIHNsZWVwKDEwMDApOwp9"),
b64("ImF1dG8iOw0KDQpsYXVuY2hBcHAoIue9keaYk+S6kemfs+S5kCIpOw0KdG9hc3QoIuaJk+W8gOS4gOS4quatjOabsueahOivhOiuuumhtemdoiIpOw0KDQovL+etieW+heW9k+WJjeS4uuivhOiuuumhtemdog0Kd2FpdEZvckFjdGl2aXR5KCJjb20ubmV0ZWFzZS5jbG91ZG11c2ljLmFjdGl2aXR5LlJlc291cmNlQ29tbWVudEFjdGl2aXR5Iik7DQoNCg0Kd2hpbGUodHJ1ZSl7DQogICAgdmFyIGxpc3QgPSBjbGFzc05hbWUoIkxpc3RWaWV3IikuZmluZE9uZSgpOw0KICAgIGxpc3QuZmluZChjbGFzc05hbWUoIlJlbGF0aXZlTGF5b3V0IikpLmVhY2goZnVuY3Rpb24oaXRlbSl7DQogICAgICAgIGlmKGl0ZW0gJiYgaXRlbS5jaGlsZENvdW50KCkgPj0gMyl7DQogICAgICAgICAgICAvL+eCuei1nuaMiemSrg0KICAgICAgICAgICAgdmFyIGZhdiA9IGl0ZW0uY2hpbGQoMik7DQogICAgICAgICAgICBpZihmYXYpew0KICAgICAgICAgICAgICAgIC8v6I635Y+W54K56LWe5qyh5pWwDQogICAgICAgICAgICAgICAgdmFyIGZhdkNvdW50ID0gcGFyc2VJbnQoZmF2LnRleHQoKSk7DQogICAgICAgICAgICAgICAgZmF2LmNsaWNrKCk7DQogICAgICAgICAgICAgICAgc2xlZXAoMTAwKTsNCiAgICAgICAgICAgICAgICBmYXYucmVmcmVzaCgpOw0KICAgICAgICAgICAgICAgIC8v5aaC5p6c54K55LqG5Lul5ZCO54K56LWe5pWw5YeP5bCR5LqG77yM6YKj5LmI6K+05piO6LWe6KKr5Y+W5raI5LqG77yM5YaN54K55LiA5qyhDQogICAgICAgICAgICAgICAgaWYocGFyc2VJbnQoZmF2LnRleHQoKSkgPCBmYXZDb3VudCl7DQogICAgICAgICAgICAgICAgICAgIGZhdi5jbGljaygpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBzbGVlcCgxMDApOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgIH0NCiAgICB9KTsNCiAgICAvL+S4i+a7kQ0KICAgIGxpc3Quc2Nyb2xsRm9yd2FyZCgpOw0KfQ0KDQo="),
b64("ImF1dG8iOw0KDQpsYXVuY2hBcHAoIue9keaYk+S6kemfs+S5kCIpOw0Kc2xlZXAoNTAwKTsNCmNsYXNzTmFtZUVuZHNXaXRoKCJEcmF3ZXJMYXlvdXQiKS5maW5kT25lKCkuY2hpbGQoMCkuY2hpbGQoMSkuY2hpbGQoMCkuY2hpbGQoMCkuY2xpY2soKTsNCnRleHQoIuetvuWIsCIpLmNsYXNzTmFtZSgiVGV4dFZpZXciKS5jbGljaygpOw=="),
b64("ImF1dG8iOwoKbGF1bmNoQXBwKCLnmb7luqbotLTlkKciKTsKc2xlZXAoMTAwMCk7CmlkKCJ0YWJjb250YWluZXIiKS51bnRpbEZpbmQoKS5lYWNoKGZ1bmN0aW9uKHRhYil7CiAgaWYodGFiLmNoaWxkQ291bnQoKSAhPSA1KXsKICAgIHJldHVybjsKICB9CiAgdmFyIGJhID0gdGFiLmNoaWxkKDEpOwogIGlmKGJhKXsKICAgIGJhLmNsaWNrKCk7CiAgfQp9KTsKdG9hc3QoIuW8gOWni+etvuWIsCIpOwp2YXIgc2lnbmVkID0ge307Cgp3aGlsZSh0cnVlKXsKICAgIHZhciBsaXN0ID0gaWQoInRhYl9jb250ZW50IikuZmluZE9uZSgpLmZpbmRPbmUoaWQoImxpc3R2aWV3IikpOwogICAgbGlzdC5jaGlsZHJlbigpLmVhY2goZnVuY3Rpb24oY2hpbGQpewogICAgICAgICBpZihjaGlsZCAmJiBjaGlsZC5jbGFzc05hbWUoKS5lbmRzV2l0aCgiTGluZWFyTGF5b3V0IikpewogICAgICAgICAgICBpZihjaGlsZC5jaGlsZENvdW50KCkgPiAxKXsKICAgICAgICAgICAgICAgIHNpZ24oY2hpbGQuZmluZE9uZShpZCgibGVmdF9jb250YWluZXIiKSkpOwogICAgICAgICAgICAgICAgc2lnbihjaGlsZC5maW5kT25lKGlkKCJyaWdodF9jb250YWluZXIiKSkpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfSk7CiAgICBsaXN0LnNjcm9sbEZvcndhcmQoKTsKfQogICAgCmZ1bmN0aW9uIHNpZ24oYyl7CiAgaWYoIWMpewogICAgcmV0dXJuOwogIH0KICB2YXIgbmFtZSA9IGMuY2hpbGQoMCkudGV4dCgpOwogIGlmKHNpZ25lZFtuYW1lXSl7CiAgICAgcmV0dXJuOwogIH0KICBjLmNsaWNrKCk7CiAgc2xlZXAoNDAwKTsKICBmb3IodmFyIGkgPSAwOyBpIDwgMzsgaSArKyl7CiAgICBpZihjbGljaygi562+5YiwIikpewogICAgICAgYnJlYWs7CiAgICB9CiAgICBzbGVlcCgyMDApOwogIH0KICBzbGVlcCg2MDApOwogIHdoaWxlKCFiYWNrKCkpOwogIHNpZ25lZFtuYW1lXSA9IHRydWU7Cn0=")
],
[
b64("aWYoIXJlcXVlc3RTY3JlZW5DYXB0dXJlKCkpew0KICAgIHRvYXN0KCLor7fmsYLmiKrlm77lpLHotKUiKTsNCiAgICBzdG9wKCk7DQp9DQp2YXIgaW1nID0gY2FwdHVyZVNjcmVlbigpOw0KLy8weGZmZmZmZuS4uueZveiJsg0KdG9hc3RMb2coIuW8gOWni+aJvuiJsiIpOw0KLy/mjIflrprlnKjkvY3nva4oOTAsIDIyMCnlrr3pq5jkuLo5MDAqMTAwMOeahOWMuuWfn+aJvuiJsuOAgg0KLy8weGZmMDBjY+aYr+e8lui+keWZqOeahOa3seeyiee6ouiJsuWtl+S9kyjlrZfnrKbkuLIp6aKc6ImyDQp2YXIgcG9pbnQgPSBmaW5kQ29sb3JJblJlZ2lvbihpbWcsICIjZmYwMGNjIiwgOTAsIDIyMCwgOTAwLCAxMDAwKTsNCmlmKHBvaW50KXsNCiAgICB0b2FzdExvZygieCA9ICIgKyBwb2ludC54ICsgIiwgeSA9ICIgKyBwb2ludC55KTsNCn1lbHNlew0KICAgIHRvYXN0TG9nKCLmsqHmnInmib7liLAiKTsNCn0NCg0KDQo="),
b64("aWYoIXJlcXVlc3RTY3JlZW5DYXB0dXJlKCkpew0KICAgIHRvYXN0KCLor7fmsYLmiKrlm77lpLHotKUiKTsNCiAgICBzdG9wKCk7DQp9DQp2YXIgaW1nID0gY2FwdHVyZVNjcmVlbigpOw0KLy8weGZmZmZmZuS4uueZveiJsg0KdG9hc3RMb2coIuW8gOWni+aJvuiJsiIpOw0KLy/mjIflrprlnKjkvY3nva4oOTAsIDIyMCnlrr3pq5jkuLo5MDAqMTAwMOeahOWMuuWfn+aJvuiJsuOAgg0KLy8weGZmMDBjY+aYr+e8lui+keWZqOeahOa3seeyiee6ouiJsuWtl+S9kyjlrZfnrKbkuLIp6aKc6ImyDQp2YXIgcG9pbnQgPSBmaW5kQ29sb3IoaW1nLCAiI2ZmMDBjYyIsIHsNCiAgICByZWdpb246IFs5MCwgMjIwLCA5MDAsIDEwMDBdLA0KICAgIHRocmVhZHM6IDgNCn0pOw0KaWYocG9pbnQpew0KICAgIHRvYXN0TG9nKCJ4ID0gIiArIHBvaW50LnggKyAiLCB5ID0gIiArIHBvaW50LnkpOw0KfWVsc2V7DQogICAgdG9hc3RMb2coIuayoeacieaJvuWIsCIpOw0KfQ0K"),
b64("Ly/lh4/lsJHmiKrlm77liIbovqjnjofku6Xmj5Dpq5jpgJ/luqYNCmlmKCFyZXF1ZXN0U2NyZWVuQ2FwdHVyZSg2NDAsIDk2MCkpew0KICAgIHRvYXN0KCLor7fmsYLmiKrlm77lpLHotKUiKTsNCiAgICBzdG9wKCk7DQp9DQp2YXIgaW1nID0gY2FwdHVyZVNjcmVlbigpOw0KdG9hc3RMb2coIuW8gOWni+aJvuiJsiIpOw0KLy8weDAyYjkwMuS4uui+k+WFpeazlee7v+iJsuWtl+S9k+eahOminOiJsg0KdmFyIHBvaW50ID0gZmluZENvbG9yKGltZywgMHgwMmI5MDIsIHsNCiAgICAvL+aMh+WumueUqDjkuKrnur/nqIvmib7oibINCiAgICB0aHJlYWRzOiA4DQp9KTsNCmlmKHBvaW50KXsNCiAgICB0b2FzdExvZygieCA9ICIgKyBwb2ludC54ICsgIiwgeSA9ICIgKyBwb2ludC55KTsNCn1lbHNlew0KICAgIHRvYXN0TG9nKCLmsqHmnInmib7liLAiKTsNCn0NCg0KDQo="),
b64("cmVxdWVzdFNjcmVlbkNhcHR1cmUoKTsNCmNvbnNvbGUuc2hvdygpOw0KZXZlbnRzLm9ic2VydmVUb3VjaCgpOw0KZXZlbnRzLnNldFRvdWNoRXZlbnRUaW1lb3V0KDMwKTsNCmV2ZW50cy5vbigidG91Y2giLCBmdW5jdGlvbihwb2ludCl7DQogICAgdmFyIGltZyA9IGNhcHR1cmVTY3JlZW4oKTsNCiAgICBpZihpbWcgPT0gbnVsbCl7DQogICAgICAgIHZhciBjID0gbnVsbDsNCiAgICB9ZWxzZXsNCiAgICAgICAgdmFyIGMgPSBjb2xvcnMudG9TdHJpbmcoaW1hZ2VzLnBpeGVsKGNhcHR1cmVTY3JlZW4oKSwgcG9pbnQueCwgcG9pbnQueSk7DQogICAgfQ0KICAgIGxvZygiKCIgKyBwb2ludC54ICsgIiwgIiArIHBvaW50LnkgKyAiKTogIiArIGMpOw0KICAgIGxvZygiIik7DQp9KTs="),
b64("aWYoIXJlcXVlc3RTY3JlZW5DYXB0dXJlKCkpew0KICAgIHRvYXN0KCLor7fmsYLmiKrlm77lpLHotKUiKTsNCiAgICBzdG9wKCk7DQp9DQp2YXIgaW1nID0gY2FwdHVyZVNjcmVlbigpOw0KaW1hZ2VzLnNhdmVJbWFnZShpbWcsICIvc2RjYXJkLzEucG5nIik7"),
b64("Ly/mjIflrprmiKrlm77liIbovqjnjofkuLogNjQww5c5NjANCmlmKCFyZXF1ZXN0U2NyZWVuQ2FwdHVyZSg2NDAsIDk2MCkpew0KICAgIHRvYXN0KCLor7fmsYLmiKrlm77lpLHotKUiKTsNCiAgICBzdG9wKCk7DQp9DQpjYXB0dXJlU2NyZWVuKCIvc2RjYXJkLzEucG5nIik7DQo="),
b64("aWYoIXJlcXVlc3RTY3JlZW5DYXB0dXJlKCkpew0KICAgIHRvYXN0KCLor7fmsYLmiKrlm77lpLHotKUiKTsNCiAgICBzdG9wKCk7DQp9DQpsYXVuY2hBcHAoIlFRIik7DQpzbGVlcCgyMDAwKTsNCnZhciBpbWcgPSBjYXB0dXJlU2NyZWVuKCk7DQp0b2FzdExvZygi5byA5aeL5om+6ImyIik7DQp2YXIgcG9pbnQgPSBmaW5kQ29sb3IoaW1nLCAiI2Y2NGQzMCIpOw0KaWYocG9pbnQpew0KICAgIHRvYXN0TG9nKCJ4ID0gIiArIHBvaW50LnggKyAiLCB5ID0gIiArIHBvaW50LnkpOw0KfWVsc2V7DQogICAgdG9hc3RMb2coIuayoeacieaJvuWIsCIpOw0KfQ0KDQoNCg=="),
b64("aWYoIXJlcXVlc3RTY3JlZW5DYXB0dXJlKCkpew0KICAgIHRvYXN0KCLor7fmsYLmiKrlm77lpLHotKUiKTsNCiAgICBzdG9wKCk7DQp9DQp2YXIgaW1nID0gY2FwdHVyZVNjcmVlbigpOw0KLy8weGZmZmZmZuS4uueZveiJsg0KdG9hc3RMb2coIuW8gOWni+aJvuiJsiIpOw0KdmFyIHBvaW50ID0gZmluZENvbG9yKGltZywgMHhmZmZmZmYsIHsNCiAgICAvL+aMh+Wumueul+azleS4unJnYiss5q+U6buY6K6k566X5rOVcmdi5pu05YeG56GuLOS9huaXtumXtOabtOS5hQ0KICAgIGFsZ29yaXRobTogInJnYisiLA0KICAgIC8v5oyH5a6a6aKc6Imy5Li055WM5YC85Li6MTYNCiAgICB0aHJlc2hvbGQ6IDE2LA0KICAgIC8v5oyH5a6a55SoOOS4que6v+eoi+aJvuiJsg0KICAgIHRocmVhZHM6IDgNCn0pOw0KaWYocG9pbnQpew0KICAgIHRvYXN0TG9nKCJ4ID0gIiArIHBvaW50LnggKyAiLCB5ID0gIiArIHBvaW50LnkpOw0KfWVsc2V7DQogICAgdG9hc3RMb2coIuayoeacieaJvuWIsCIpOw0KfQ0KDQpwb2ludCA9IGZpbmRDb2xvcihpbWcsIDB4ZmZmZmZmLCB7DQogICAgLy/mjIflrprnrpfms5XkuLrpopzoibLlt67lgLzvvIzmr5Tpu5jorqTnrpfms5VyZ2Lmm7Tlv6sNCiAgICBhbGdvcml0aG06ICJkaWZmIiwNCiAgICAvL+aMh+WumnIsIGIsIGLliIbliKvpg73lnKjojIPlm7RmZsKxMjDlhoUNCiAgICB0aHJlc2hvbGQ6IDB4MjAyMDIwLA0KfSk7DQppZihwb2ludCl7DQogICAgdG9hc3RMb2coInggPSAiICsgcG9pbnQueCArICIsIHkgPSAiICsgcG9pbnQueSk7DQp9ZWxzZXsNCiAgICB0b2FzdExvZygi5rKh5pyJ5om+5YiwIik7DQp9DQo="),
b64("aWYoIXJlcXVlc3RTY3JlZW5DYXB0dXJlKCkpew0KICAgIHRvYXN0KCLor7fmsYLmiKrlm77lpLHotKUiKTsNCiAgICBzdG9wKCk7DQp9DQp2YXIgaW1nID0gY2FwdHVyZVNjcmVlbigpOw0KLy8weDk5NjZmZuS4uue8lui+keWZqOe0q+iJsuWtl+S9k+eahOminOiJsg0KdG9hc3RMb2coIuW8gOWni+aJvuiJsiIpOw0KdmFyIHBvaW50ID0gZmluZENvbG9yKGltZywgMHg5OTY2ZmYpOw0KaWYocG9pbnQpew0KICAgIHRvYXN0TG9nKCJ4ID0gIiArIHBvaW50LnggKyAiLCB5ID0gIiArIHBvaW50LnkpOw0KfWVsc2V7DQogICAgdG9hc3RMb2coIuayoeacieaJvuWIsCIpOw0KfQ0KDQoNCg=="),
b64("aWYoIXJlcXVlc3RTY3JlZW5DYXB0dXJlKCkpew0KICAgIHRvYXN0KCLor7fmsYLmiKrlm77lpLHotKUiKTsNCiAgICBzdG9wKCk7DQp9DQp2YXIgaW1nID0gY2FwdHVyZVNjcmVlbigpOw0KdG9hc3RMb2coIuW8gOWni+aJvuiJsiIpOw0KLy8weDAwNjY5OeS4uue8lui+keWZqOiTneiJsuWtl+S9kyh2YXIp55qE6aKc6ImyDQovL+aJvuWIsOminOiJsuS4jjB4MDA2Njk55a6M5YWo55u4562J55qE6aKc6ImyDQp2YXIgcG9pbnQgPSBmaW5kQ29sb3JFcXVhbHMoaW1nLCAweDAwNjY5OSk7DQppZihwb2ludCl7DQogICAgdG9hc3RMb2coInggPSAiICsgcG9pbnQueCArICIsIHkgPSAiICsgcG9pbnQueSk7DQp9ZWxzZXsNCiAgICB0b2FzdExvZygi5rKh5pyJ5om+5YiwIik7DQp9DQoNCg0K"),
b64("aWYoIXJlcXVlc3RTY3JlZW5DYXB0dXJlKCkpewogIHRvYXN0KCLor7fmsYLmiKrlm77lpLHotKUiKTsKfQpzbGVlcCgyMDAwKTsKdmFyIHggPSA3NjA7CnZhciB5ID0gMTgwOwovL+iOt+WPluWcqOeCuSh4LCB5KeWkhOeahOminOiJsgp2YXIgYyA9IGltYWdlcy5waXhlbChjYXB0dXJlU2NyZWVuKCksIHgsIHkpOwovL+aYvuekuuivpeminOiJsgp2YXIgbXNnID0gIiI7Cm1zZyArPSAi5Zyo5L2N572uKCIgKyB4ICsgIiwgIiArIHkgKyAiKeWkhOeahOminOiJsuS4uiIgKyBjb2xvcnMudG9TdHJpbmcoYyk7Cm1zZyArPSAiXG5SID0gIiArIGNvbG9ycy5yZWQoYykgKyAiLCBHID0gIiArIGNvbG9ycy5ncmVlbihjKSArICIsIEIgPSAiICsgY29sb3JzLmJsdWUoYyk7Ci8v5qOA5rWL5Zyo54K5KHgsIHkp5aSE5piv5ZCm5pyJ6aKc6ImyMHg3M2JkYjYgKOaooeeziuavlOi+gykKdmFyIGlzRGV0ZWN0ZWQgPSBpbWFnZXMuZGV0ZWN0c0NvbG9yKGNhcHR1cmVTY3JlZW4oKSwgIiM3M2JkYjYiLCB4LCB5KTsKbXNnICs9ICJcbuivpeS9jee9ruaYr+WQpuWMuemFjeWIsOminOiJsiM3M2JkYjY6ICIgKyBpc0RldGVjdGVkOwphbGVydChtc2cpOw==")
],
[
b64("ImF1dG8iOw0KDQpsYXVuY2hBcHAoIlFRIik7DQpzbGVlcCgyMDAwKTsNCg0Kd2hpbGUodHJ1ZSl7DQogICAgaWYoY3VycmVudFBhY2thZ2UoKSA9PSAnY29tLnRlbmNlbnQubW9iaWxlcXEnKXsNCiAgICAgICAgc3dpcGUoNjAwLCA5MDAsIDYwMCwgMTQwMCwgNDAwKTsNCiAgICB9DQogICAgc2xlZXAoMzAwKTsNCn0="),
b64("ImF1dG8iOw0KDQovKioNCiAqIOWQjOaXtuaooeaLn+S4ieS4quaJi+WKv++8mg0KICog5LuOKDMwMCwgNDAwKeWIsCgzMDAsIDE0MDApDQogKiDku44oNjAwLCA0MDAp5YiwKDYwMCwgMTQwMCkNCiAqIOS7jig5MDAsIDQwMCnliLAoOTAwLCAxNDAwKQ0KICog5q+P5LiA5Liq55qE5pe26ZW/6YO95Li6MzUw5q+r56eSDQogKi8NCg0KZ2VzdHVyZXMoWzM1MCwgWzMwMCwgNDAwXSwgWzMwMCwgMTQwMF1dLA0KICAgICAgICAgWzM1MCwgWzYwMCwgNDAwXSwgWzYwMCwgMTQwMF1dLA0KICAgICAgICAgWzM1MCwgWzkwMCwgNDAwXSwgWzkwMCwgMTQwMF1dDQopOw0K"),
b64("ImF1dG8iOw0KDQpzZXRTY3JlZW5NZXRyaWNzKDEwODAsIDE5MjApOw0KDQovL+WmguaenOS9oOS9v+eUqOeahOaYr01JVUnvvIzmraTohJrmnKzov5DooYzlkI7kvJrlh7rnjrDmoYzpnaLlpJrlsY/luZXnvJbovpENCmhvbWUoKTsNCnNsZWVwKDE1MDApOw0KZ2VzdHVyZXMoWzM1MCwgWzgwMCwgMzAwXSwgWzUwMCwgMTAwMF1dLA0KICAgICAgICAgWzM1MCwgWzMwMCwgMTUwMF0sIFs1MDAsIDEwMDBdXSwNCiAgICAgICAgIFszNTAsIFszMDAsIDMwMF0sIFs1MDAsIDEwMDBdXSk7"),
b64("ImF1dG8iOw0KDQpzZXRTY3JlZW5NZXRyaWNzKDEwODAsIDE5MjApOw0KbGF1bmNoQXBwKCJRUSIpOw0KDQpzbGVlcCgxNTAwKTsNCg0KY2xpY2soODkxLCAxODUxKTsNCnNsZWVwKDEwMDApOw0KLy/ngrnlh7vlpb3lj4vliqjmgIENCmNsaWNrKDE5MiwgNDUzKTsNCnNsZWVwKDEwMDApOw0KLy/ngrnlh7vlpLTlg48NCmNsaWNrKDE1NSwgNjM4KTsNCnNsZWVwKDEwMDApOw0KLy/ngrnlh7vnlZnoqIANCmNsaWNrKDc0NywgNzc1KTsNCnNsZWVwKDEwMDApOw0KDQp3aGlsZSh0cnVlKXsNCiAgICBpZihjdXJyZW50UGFja2FnZSgpID09ICdjb20udGVuY2VudC5tb2JpbGVxcScpew0KICAgICAgICAvL+eCueWHu+eureWktOWbvuaghw0KICAgICAgICBjbGljaygxMDI5LCA0MzMpOw0KICAgICAgICBzbGVlcCgzMDApOw0KICAgICAgICAvL+eCueWHu+WIoOmZpA0KICAgICAgICBjbGljayg1MzAsIDgyMCk7DQogICAgICAgIHNsZWVwKDMwMCk7DQogICAgICAgIC8v54K55Ye756Gu5a6aDQogICAgICAgIGNsaWNrKDMzMSwgMTEyMik7DQogICAgICAgIHNsZWVwKDIwMCk7DQogICAgfQ0KICAgIHNsZWVwKDIwMCk7DQp9DQo="),
b64("ImF1dG8iOw0KDQpzZXRTY3JlZW5NZXRyaWNzKDEwODAsIDE5MjApOw0KDQovL+WmguaenOS9oOS9v+eUqOeahOaYr01JVUnvvIzmraTohJrmnKzov5DooYzlkI7kvJrlh7rnjrDmoYzpnaLnvJbovpENCmhvbWUoKTsNCnNsZWVwKDE1MDApOw0KZ2VzdHVyZXMoWzUwMCwgWzgwMCwgMzAwXSwgWzUwMCwgMTAwMF1dLA0KICAgICAgICAgWzUwMCwgWzMwMCwgMTUwMF0sIFs1MDAsIDEwMDBdXSk7"),
b64("ImF1dG8iOw0KDQp0b2FzdCgi5byA5ZCv5byA5Y+R6ICF6YCJ6aG5LeaMh+mSiOS9jee9ruaIluiAheWcqOeUu+eUu+i9r+S7tuaJjeiDveafpeeci+aViOaenCIpOw0KDQpzZXRTY3JlZW5NZXRyaWNzKDEwODAsIDE5MjApOw0KDQp2YXIgcG9pbnRzID0gWzEwMDAwXTsNCnZhciBpbnRlcnZhbCA9IDAuMTsNCnZhciB4MCA9IDYwMDsNCnZhciB5MCA9IDEwMDA7DQp2YXIgYSA9IDEyMDsNCg0KZm9yKHZhciB0ID0gMDsgdCA8IDIgKiBNYXRoLlBJOyB0ICs9IGludGVydmFsKXsNCiAgICB2YXIgeCA9IHgwICsgYSAqICgyICogTWF0aC5jb3ModCkgLSBNYXRoLmNvcygyICogdCkpOw0KICAgIHZhciB5ID0geTAgKyBhICogKDIgKiBNYXRoLnNpbih0KSAtIE1hdGguc2luKDIgKiB0KSk7DQogICAgcG9pbnRzLnB1c2goW3BhcnNlSW50KHgpLCBwYXJzZUludCh5KV0pOw0KfQ0KDQpnZXN0dXJlLmFwcGx5KG51bGwsIHBvaW50cyk7DQo="),
b64("ImF1dG8iOw0KDQovL+ihqOekuuS7juS9jee9rig1MDAsIDEwKea7keWKqOWIsOS9jee9rig1MDAsIDEwMDApLCDmjIHnu63kuKTnp5INCnN3aXBlKDUwMCwgMTAsIDUwMCwgMTAwMCwgMjAwMCk7"),
b64("ImF1dG8iOw0KDQpzZXRTY3JlZW5NZXRyaWNzKDEwODAsIDE5MjApOw0KDQpjbGljaygxMDAsIDE1MCk7")
],
[
b64("dG9hc3QoIumdmeetiTIw56eS77yM5L2g5Lya55yL5Yiw5oOz55yL55qELi4uIik7DQoNCnZhciBpID0gMDsNCg0Kc2V0VGltZW91dChmdW5jdGlvbigpew0KICAgIGFwcC5vcGVuVXJsKCJodHRwOi8vbXVzaWMuMTYzLmNvbS8jL3Nvbmc/aWQ9MTA5NjI4JmF1dG9wbGF5PXRydWUmbWFya2V0PWJhaWR1aGQiKTsNCiAgICBleGl0KCk7DQp9LCAyMCAqIDEwMDApOw0KDQpzZXRJbnRlcnZhbChmdW5jdGlvbigpew0KICAgIGkrKzsNCiAgICB0b2FzdChpICogNSArICLnp5IiKTsNCn0sIDUwMDApOw0KDQo="),
b64("dmFyIGkgPSAwOw0KDQpzZXRJbnRlcnZhbChmdW5jdGlvbigpew0KICAgIGkrKzsNCiAgICB0b2FzdChpICogNCArICLnp5IiKTsNCiAgICBpZihpID09IDUpew0KICAgICAgICBleGl0KCk7DQogICAgfQ0KfSwgNDAwMCk7DQoNCg==")
],
[
b64("dmFyIHNleCA9IGRpYWxvZ3Muc2luZ2xlQ2hvaWNlKCLor7fpgInmi6nmgKfliKsiLCBbIueUtyIsICLlpbMiLCAi5Z+65L2sIiwgIuWls+ijhSIsICLlhbbku5YiXSwgMik7DQp0b2FzdCgi6YCJ5oup5LqG56ysIiArIChzZXggKyAxKSArICLkuKrpgInpobkiKTs="),
b64("dmFyIGkgPSBkaWFsb2dzLm11bHRpQ2hvaWNlKCLkuIvliJfkvZzlk4Hlh7roh6rmnY7otL3nmoTmmK8iLCBbIuOAiueEmuS5puOAiyIsICLjgIropb/muZblr7vmoqbjgIsiLCAi44CK6auY5aSq5Y+y5YWo6ZuG44CLIiwgIuOAiue7reeEmueDp+S5puOAiyIsICLjgIrol4/kuabjgIsiXSk7DQp0b2FzdCgi6YCJ5oup5LqGOiAiICsgaSk7DQppZihpLmxlbmd0aCA9PSAyICYmIGkudG9TdHJpbmcoKSA9PSBbMCwgNF0udG9TdHJpbmcoKSl7DQogICAgdG9hc3QoIuetlOWvuei+oyIpOw0KfWVsc2V7DQogICAgdG9hc3QoIuetlOmUmei+oyIpOw0KfQ=="),
b64("dmFyIGhhbmRzb21lID0gY29uZmlybSgi5L2g5biF5ZCX77yfIik7DQppZihoYW5kc29tZSl7DQogICAgdG9hc3QoIuecn+S4jeimgeiEuO+8gSIpOw0KICAgIHRvYXN0KCLnnJ/kuI3opoHohLjvvIEiKTsNCiAgICB0b2FzdCgi55yf5LiN6KaB6IS477yBIik7DQogICAgYWxlcnQoIuecn+S4jeimgeiEuO+8gSIpOw0KfWVsc2V7DQogICAgdG9hc3QoIuWXryIpOw0KfQ=="),
b64("dmFyIG51bTEgPSBkaWFsb2dzLmlucHV0KCLor7fovpPlhaXnrKzkuIDkuKrmlbDlrZciKTsNCnZhciBvcCA9IGRpYWxvZ3Muc2luZ2xlQ2hvaWNlKCLor7fpgInmi6nov5DnrpciLCBbIuWKoCIsICLlh48iLCAi5LmYIiwgIumZpCIsICLluYIiXSk7DQp2YXIgbnVtMiA9IGRpYWxvZ3MuaW5wdXQoIuivt+i+k+WFpeesrOS6jOS4quaVsOWtlyIpOw0KdmFyIHJlc3VsdCA9IDA7DQpzd2l0Y2gob3Apew0KY2FzZSAwOg0KICAgIHJlc3VsdCA9IG51bTEgKyBudW0yOw0KICAgIGJyZWFrOw0KY2FzZSAxOg0KICAgIHJlc3VsdCA9IG51bTEgLSBudW0yOw0KICAgIGJyZWFrOw0KY2FzZSAyOg0KICAgIHJlc3VsdCA9IG51bTEgKiBudW0yOw0KICAgIGJyZWFrOw0KY2FzZSAzOg0KICAgIHJlc3VsdCA9IG51bTEgLyBudW0yOw0KICAgIGJyZWFrOw0KY2FzZSA0Og0KICAgIHJlc3VsdCA9IE1hdGgucG93KG51bTEsIG51bTIpOw0KICAgIGJyZWFrOw0KfQ0KYWxlcnQoIui/kOeul+e7k+aenCIsIHJlc3VsdCk7"),
b64("d2hpbGUodHJ1ZSl7DQogICAgdmFyIGkgPSBkaWFsb2dzLnNlbGVjdCgi5ZOy5a2m55qE5Z+65pys6Zeu6aKY5pivIiwgIuekvuS8muWSjOiHqueEtueahOWFs+ezu+mXrumimCIsICLmgJ3nu7TkuI7lrZjlnKjnmoTlhbPns7vpl67popgiLCAi5pS/5rK75ZKM57uP5rWO55qE5YWz57O76Zeu6aKYIiwgIuWunui3teWSjOeQhuiuuueahOWFs+ezu+mXrumimCIpOw0KICAgIGlmKGkgPT0gLTEpew0KICAgICAgICB0b2FzdCgi54yc5LiA5LiL5ZGXIik7DQogICAgICAgIGNvbnRpbnVlOw0KICAgIH0NCiAgICBpZihpID09IDEpew0KICAgICAgICB0b2FzdCgi562U5a+56L6jIik7DQogICAgICAgIGJyZWFrOw0KICAgIH1lbHNlew0KICAgICAgICB0b2FzdCgi562U6ZSZ6L6jIikNCiAgICB9DQp9DQoNCg0K"),
b64("dmFyIG5hbWUgPSByYXdJbnB1dCgi6K+36L6T5YWl5ZCN5a2XIik7DQphbGVydCgiKOKAosyB44G44oCizIHilawpIiwgIuS9oOWlvX4gIiArIG5hbWUpOw0KdmFyIGV4cHIgPSBkaWFsb2dzLmlucHV0KCLor7fovpPlhaXnroDljZXnmoTnrpflvI8iLCAiMSsxIik7DQphbGVydCgi6K6h566X57uT5p6c5Li6ICIgKyBleHByKTs=")
],
[
b64("Ly/ovpPlhaXlupTnlKjlkI3np7ANCnZhciBhcHBOYW1lID0gcmF3SW5wdXQoJ+ivt+i+k+WFpeimgeWNuOi9veeahOW6lOeUqOWQjeensCcpOw0KLy/ojrflj5blupTnlKjljIXlkI0NCnZhciBwYWNrYWdlTmFtZSA9IGdldFBhY2thZ2VOYW1lKGFwcE5hbWUpOw0KaWYoIXBhY2thZ2VOYW1lKXsNCiAgICB0b2FzdCgi5bqU55So5LiN5a2Y5Zyo77yBIik7DQp9ZWxzZXsNCiAgICAvL+WNuOi9veW6lOeUqA0KICAgIGFwcC51bmluc3RhbGwocGFja2FnZU5hbWUpOw0KfQ=="),
b64("dmFyIGNvbnRlbnQgPSByYXdJbnB1dCgn6K+36L6T5YWl6KaB5YiG5Lqr55qE5paH5pysJyk7DQphcHAuc3RhcnRBY3Rpdml0eSh7DQogICAgYWN0aW9uOiAiYW5kcm9pZC5pbnRlbnQuYWN0aW9uLlNFTkQiLA0KICAgIHR5cGU6ICJ0ZXh0LyoiLA0KICAgIGV4dHJhczogew0KICAgICAgImFuZHJvaWQuaW50ZW50LmV4dHJhLlRFWFQiOiBjb250ZW50DQogICAgfSwNCiAgICBwYWNrYWdlTmFtZTogImNvbS50ZW5jZW50Lm1vYmlsZXFxIiwNCiAgICBjbGFzc05hbWU6ICJjb20udGVuY2VudC5tb2JpbGVxcS5hY3Rpdml0eS5KdW1wQWN0aXZpdHkiDQp9KTs="),
b64("dmFyIGkgPSBkaWFsb2dzLnNlbGVjdCgi6K+36YCJ5oup5bel5YW3IiwgIuiOt+WPluW6lOeUqOWMheWQjSIsICLmiZPlvIDlupTnlKjor6bmg4XpobUiLCAi5Y246L295bqU55SoIik7DQoNCmlmKGkgPT0gLTEpew0KICAgIGFsZXJ0KCLmsqHmnInpgInmi6nku7vkvZXlt6XlhbfvvIEiKTsNCn0NCg0Kc3dpdGNoKGkpew0KY2FzZSAwOg0KICAgIC8v6I635Y+W5bqU55So5YyF5ZCNDQogICAgYXBwTmFtZSA9IHJhd0lucHV0KCLor7fovpPlhaXlupTnlKjlkI3np7AiLCAiUVEiKTsNCiAgICBwYWNrYWdlTmFtZSA9IGdldFBhY2thZ2VOYW1lKGFwcE5hbWUpOw0KICAgIHRvYXN0KHBhY2thZ2VOYW1lKTsNCiAgICBzZXRDbGlwKHBhY2thZ2VOYW1lKTsNCiAgICB0b2FzdCgi5bey5aSN5Yi25Yiw5Ymq6LS05p2/Iik7DQogICAgYnJlYWs7DQpjYXNlIDE6DQogICAgLy/miZPlvIDlupTnlKjor6bmg4XpobUNCiAgICBhcHBOYW1lID0gcmF3SW5wdXQoIuivt+i+k+WFpeW6lOeUqOWQjeensCIsICLlvq7kv6EiKTsNCiAgICBvcGVuQXBwU2V0dGluZyhnZXRQYWNrYWdlTmFtZShhcHBOYW1lKSk7DQogICAgYnJlYWs7DQpjYXNlIDI6DQogICAgLy/ljbjovb3lupTnlKgNCiAgICBhcHBOYW1lID0gcmF3SW5wdXQoIuivt+i+k+WFpeW6lOeUqOWQjeensCIpOw0KICAgIHBhY2thZ2VOYW1lID0gZ2V0UGFja2FnZU5hbWUoYXBwTmFtZSk7DQogICAgaWYocGFja2FnZU5hbWUgPT0gIiIpew0KICAgICAgICB0b2FzdCgi5bqU55So5LiN5a2Y5ZyoIik7DQogICAgfWVsc2UgaWYoY29uZmlybSgi56Gu5a6a5Y246L295bqU55SoIiArIHBhY2thZ2VOYW1lICsgIuWQl++8nyIpKXsNCiAgICAgICAgYXBwLnVuaW5zdGFsbChwYWNrYWdlTmFtZSk7DQogICAgfQ0KICAgIGJyZWFrOw0KfQ=="),
b64("ImF1dG8iOw0KDQp2YXIgYXBwTmFtZSA9IHJhd0lucHV0KCLor7fovpPlhaXlupTnlKjlkI3np7AiKTsNCm9wZW5BcHBTZXR0aW5nKGdldFBhY2thZ2VOYW1lKGFwcE5hbWUpKTsNCndoaWxlKCFjbGljaygi5by65Yi25YGc5q2iIikpOw=="),
b64("dmFyIGFwcE5hbWUgPSByYXdJbnB1dCgi6K+36L6T5YWl5bqU55So5ZCN56ewIik7DQpsYXVuY2hBcHAoYXBwTmFtZSk7")
],
[
b64("Y29uc29sZS5zaG93KCk7DQoNCmxvZygi5bCG5Lqn55SfNeS4qjHliLAxMDDnmoTpmo/mnLrmlbAiKTsNCg0KZm9yKGxldCBpID0gMDsgaSA8IDU7IGkrKyl7DQogICAgcHJpbnQocmFuZG9tKDEsIDEwMCkpOw0KICAgIHByaW50KCIgICIpOw0KICAgIHNsZWVwKDQwMCk7DQp9DQpwcmludCgiXG4iKTsNCg0KbG9nKCLlsIbkuqfnlJ8xMOS4qjHliLAyMOeahOS4jemHjeWkjemaj+acuuaVsCIpOw0KDQp2YXIgZXhpc3RzID0ge307DQoNCmZvcihsZXQgaSA9IDA7IGkgPCAxMDsgaSsrKXsNCiAgICB2YXIgcjsNCiAgICBkb3sNCiAgICAgICAgciA9IHJhbmRvbSgxLCAyMCk7DQogICAgfXdoaWxlKGV4aXN0c1tyXSk7DQogICAgZXhpc3RzW3JdID0gdHJ1ZTsNCiAgICBwcmludChyICsgIiAgIik7DQogICAgc2xlZXAoNDAwKTsNCn0="),
b64("Ly/mmL7npLrmjqfliLblj7ANCmNvbnNvbGUuc2hvdygpOw0KDQpjb25zb2xlLnZlcmJvc2UoIui/meaYr+eBsOiJsiIpOw0KY29uc29sZS5sb2coIui/meaYr+m7keiJsiIpOw0KY29uc29sZS5pbmZvKCLov5nmmK/nuqLoibIiKTsNCmNvbnNvbGUud2Fybigi6L+Z5piv6JOd6ImyIik7DQpjb25zb2xlLmVycm9yKCLov5nmmK/nu7/oibI9Xz0iKTsNCg=="),
b64("dmFyIHNoID0gbmV3IFNoZWxsKCk7DQpzaC5zZXRDYWxsYmFjayh7DQogICAgb25PdXRwdXQ6IGZ1bmN0aW9uKHN0cil7DQogICAgICAgIHByaW50KHN0cik7DQogICAgfQ0KfSkNCmNvbnNvbGUuc2hvdygpOw0KZG8gew0KICAgIHZhciBjbWQgPSBjb25zb2xlLnJhd0lucHV0KCk7DQogICAgc2guZXhlYyhjbWQpOw0KfXdoaWxlKGNtZCAhPSAiZXhpdCIpOw0Kc2guZXhpdCgpOw==")
],
[
b64("Ly/mlofku7bot6/lvoQNCnZhciBwYXRoID0gIi9zZGNhcmQvMS50eHQiOw0KLy/opoHlhpnlhaXnmoTmlofku7blhoXlrrkNCnZhciB0ZXh0ID0gIkhlbGxvLCBBdXRvSnMiOw0KLy/ku6XlhpnlhaXmqKHlvI/miZPlvIDmlofku7YNCnZhciBmaWxlID0gb3BlbihwYXRoLCAidyIpOw0KLy/lhpnlhaXmlofku7YNCmZpbGUud3JpdGUodGV4dCk7DQovL+WFs+mXreaWh+S7tg0KZmlsZS5jbG9zZSgpOw=="),
b64("aWYoY29uZmlybSgi6K+l5pON5L2c5Lya5Yig6ZmkU0TljaHnm67lvZXlj4rlhbblrZDnm67lvZXkuIvmiYDmnInnqbrmlofku7blpLnvvIzmmK/lkKbnu6fnu63vvJ8iKSl7DQogICAgdG9hc3QoIuivt+eCueWHu+WPs+S4iuinkuaJk+W8gOaXpeW/lyIpOw0KICAgIGRlbGV0ZUFsbEVtcHR5RGlycyhmaWxlcy5nZXRTZGNhcmRQYXRoKCkpOw0KICAgIHRvYXN0KCLlhajpg6jlrozmiJDvvIEiKTsNCn0NCg0KZnVuY3Rpb24gZGVsZXRlQWxsRW1wdHlEaXJzKGRpcil7DQogICAgdmFyIGxpc3QgPSBmaWxlcy5saXN0RGlyKGRpcik7DQogICAgdmFyIGxlbiA9IGxpc3QubGVuZ3RoOw0KICAgIGlmKGxlbiA9PSAwKXsNCiAgICAgICAgbG9nKCLliKDpmaTnm67lvZUgIiArIGRpciArICIgIiArIChmaWxlcy5yZW1vdmUoZGlyKSA/ICLmiJDlip8iIDogIuWksei0pSIpKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBmb3IobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspew0KICAgICAgICB2YXIgY2hpbGQgPSBmaWxlcy5qb2luKGRpciwgbGlzdFtpXSk7DQogICAgICAgIGlmKGZpbGVzLmlzRGlyKGNoaWxkKSl7DQogICAgICAgICAgICBkZWxldGVBbGxFbXB0eURpcnMoY2hpbGQpOw0KICAgICAgICB9DQogICAgfQ0KfQ=="),
b64("DQoNCmNvbnZlcnQoIi9zZGNhcmQvMS50eHQiLCAidXRmLTgiLCAiL3NkY2FyZC8yLnR4dCIsICJnYmsiKTsNCg0KLyoqDQogKiBmcm9tRmlsZTog5rqQ5paH5Lu26Lev5b6EDQogKiBmcm9tRW5jb2Rpbmc6IOa6kOaWh+S7tue8lueggQ0KICogdG9GaWxlOiDovpPlh7rmlofku7bot6/lvoQNCiAqIHRvRW5jb2Rpbmc6IOi+k+WHuuaWh+S7tue8lueggQ0KICovDQpmdW5jdGlvbiBjb252ZXJ0KGZyb21GaWxlLCBmcm9tRW5jb2RpbmcsIHRvRmlsZSwgdG9FbmNvZGluZyl7DQogICAgZnJvbUZpbGUgPSBvcGVuKGZyb21GaWxlLCAiciIsIGZyb21FbmNvZGluZyk7DQogICAgdG9GaWxlID0gb3Blbih0b0ZpbGUsICJ3IiwgdG9FbmNvZGluZyk7DQogICAgd2hpbGUodHJ1ZSl7DQogICAgICAgIHZhciBsaW5lID0gZnJvbUZpbGUucmVhZGxpbmUoKTsNCiAgICAgICAgaWYoIWxpbmUpDQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgdG9GaWxlLndyaXRlbGluZShsaW5lKTsNCiAgICB9DQp9"),
b64("Ly/ku6VVVEYtOOe8lueggeaJk+W8gFNE5Y2h5LiK55qEMS50eHTmlofku7YNCnZhciBmID0gb3BlbigiL3NkY2FyZC8xLnR4dCIsICJyIiwgInV0Zi04Iik7DQovL+ivu+WPluaWh+S7tuaJgOacieWGheWuuQ0KdmFyIHRleHQgPSBmLnJlYWQoKTsNCi8v5YWz6Zet5paH5Lu2DQpmLmNsb3NlKCk7DQovL+S7pWdia+e8lueggeaJk+W8gFNE5Y2h5LiK55qEMi50eHTmlofku7YNCnZhciBvdXQgPSBvcGVuKCIvc2RjYXJkLzIudHh0IiwgInciLCAiZ2JrIik7DQovL+WGmeWFpeWGheWuuQ0Kb3V0LndyaXRlKHRleHQpOw0KLy/lhbPpl63mlofku7YNCm91dC5jbG9zZSgpOw0KDQo="),
b64("Ly/ku6XlhpnlhaXmqKHlvI/miZPlvIBTROWNoeagueebruW9leaWh+S7tjEudHh0DQp2YXIgZmlsZSA9IG9wZW4oIi9zZGNhcmQvMS50eHQiLCAidyIpDQovL+WGmeWFpWFhYWENCmZpbGUud3JpdGUoImFhYWEiKTsNCi8v5YaZ5YWlYmJiYmLlkI7mjaLooYwNCmZpbGUud3JpdGVsaW5lKCJiYmJiYiIpOw0KLy/lhpnlhaVjY2PkuI5kZGTkuKTooYwNCmZpbGUud3JpdGVsaW5lcyhbImNjYyIsICJkZGQiXSk7DQovL+WFs+mXreaWh+S7tg0KZmlsZS5jbG9zZSgpOw0KDQovL+S7pemZhOWKoOaooeW8j+aJk+W8gOaWh+S7tg0KZmlsZSA9IG9wZW4oIi9zZGNhcmQvMS50eHQiLCAiYSIpOw0KLy/pmYTliqDkuIDooYwi5ZWm5ZWm5ZWm5ZWmIg0KZmlsZS53cml0ZWxpbmUoIuWVpuWVpuWVpuWVpiIpOw0KLy/pmYTliqDkuIDooYwi5ZOI5ZOI5ZOI5ZOIIg0KZmlsZS53cml0ZWxpbmUoIuWTiOWTiOWTiOWTiCIpOw0KLy/pmYTliqDkuKTooYxjY2MsIGRkZA0KZmlsZS53cml0ZWxpbmVzKFsiY2NjIiwgImRkZCJdKTsNCi8v6L6T5Ye657yT5Yay5Yy6DQpmaWxlLmZsdXNoKCk7DQovL+WFs+mXreaWh+S7tg0KZmlsZS5jbG9zZSgpOw0KDQoNCi8v5Lul6K+75Y+W5qih5byP5omT5byA5paH5Lu2DQpmaWxlID0gb3BlbigiL3NkY2FyZC90ZXN0LnR4dCIsICJyIikNCi8v6K+75Y+W5LiA6KGM5bm25omT5Y2wDQpwcmludChmaWxlLnJlYWRsaW5lKCkpOw0KLy/or7vlj5bliankvZnmiYDmnInooYzlubbmiZPljbANCmZvciBlYWNoKGxpbmUgaW4gZmlsZS5yZWFkbGluZXMoKSl7DQogIHByaW50KGxpbmUpDQp9DQpmaWxlLmNsb3NlKCkNCg0KLy/mmL7npLrmjqfliLblj7ANCmNvbnNvbGUuc2hvdygp"),
b64("Ly/mlofku7bot6/lvoQNCnZhciBwYXRoID0gIi9zZGNhcmQvMS50eHQiOw0KLy/miZPlvIDmlofku7YNCnZhciBmaWxlID0gb3BlbihwYXRoKTsNCi8v6K+75Y+W5paH5Lu255qE5omA5pyJ5YaF5a65DQp2YXIgdGV4dCA9IGZpbGUucmVhZCgpOw0KLy/miZPljbDliLDmjqfliLblj7ANCnByaW50KHRleHQpOw0KLy/lhbPpl63mlofku7YNCmZpbGUuY2xvc2UoKTsNCmNvbnNvbGUuc2hvdygpOw==")
],
[
b64("InVpIjsNCg0KdWkuc3RhdHVzQmFyQ29sb3IoIiMwM2E5ZjQiKTsNCg0KdWkubGF5b3V0KA0KICAgIDx2ZXJ0aWNhbD4NCiAgICAgICAgPHRleHQgdz0iKiIgaD0iNTYiIGJnPSIjMDNhOWY0IiBwYWRkaW5nTGVmdD0iMTYiIGdyYXZpdHk9ImNlbnRlcl92ZXJ0aWNhbCIgY29sb3I9IiNmZmYiIHNpemU9IjE4c3AiPlFR5omT5byA6IGK5aSp56qX5Y+jPC90ZXh0Pg0KICAgICAgICA8dmVydGljYWwgaD0iKiIgdz0iKiIgbWFyZ2luPSIxNiA1MCI+DQogICAgICAgICAgICA8aW5wdXQgaWQ9InFxIiBoPSI1MCIgaGludD0i6K+36L6T5YWlUVHlj7ciLz4NCiAgICAgICAgICAgIDxidXR0b24gaWQ9Im9rIiB0ZXh0PSLnoa7lrpoiIC8+DQogICAgICAgIDwvdmVydGljYWw+DQogICAgPC92ZXJ0aWNhbD4NCikNCg0KdWkub2suY2xpY2soZnVuY3Rpb24oKXsNCiAgICBhcHAuc3RhcnRBY3Rpdml0eSh7DQogICAgICAgIGFjdGlvbjogImFuZHJvaWQuaW50ZW50LmFjdGlvbi5WSUVXIiwNCiAgICAgICAgZGF0YTogIm1xcXdwYTovL2ltL2NoYXQ/Y2hhdF90eXBlPXdwYSZ1aW49IiArIHVpLnFxLnRleHQoKQ0KICAgIH0pOw0KICAgIHVpLmZpbmlzaCgpOw0KfSk7"),
b64("InVpIjsKCi8qKgogKiBCeSBEYSBaaGFuZwogKiDmnKzohJrmnKzku4XkuLrlqLHkuZDvvIzmsqHmnInku7vkvZXnoLTlnY/mgKfotKgKICovCgp1aS5zdGF0dXNCYXJDb2xvcigiI0FBMDAwMCIpOwoKdmFyIFF1aW4gPSAzMjU1MjczMjsKCnVpLmxheW91dCgKICAgIDxmcmFtZSBiYWNrZ3JvdW5kPSIjQUEwMDAwIj4KCSAgICA8dmVydGljYWwgYWxpZ249InRvcCIgcGFkZGluZ1RvcD0iNSIgbWFyZ2luPSIxMCI+CgkJICAgIDx0ZXh0IGlkPSJvb3BzIiBjb2xvcj0iI0ZGRkZGRiIgZ3Jhdml0eT0iY2VudGVyIiBzaXplPSIyMCI+T29wcywgeW91ciBmaWxlcyBoYXZlIGJlZW4gZW5jcnlwdGVkITwvdGV4dD4KCQkgICAgPHRleHQgaWQ9InRleHQiIGJnPSIjRkZGRkZGIiBncmF2aXR5PSJsZWZ0IiBjb2xvcj0iIzAwMCIgc2l6ZT0iMTUiIG1hcmdpblRvcD0iMTUiIGg9IjQyNSI+PC90ZXh0PgoJCSAgICA8YnV0dG9uIGlkPSJwYXltZW50IiB0ZXh0PSJQYXltZW50IiBtYXJnaW49IjIwIDAgMCAwIi8+CgkJICAgIDxidXR0b24gaWQ9ImRlY3J5cHQiIHRleHQ9IkRlY3J5cHQiLz4KCSAgICA8L3ZlcnRpY2FsPgogICAgPC9mcmFtZT4KKTsKdWkudGV4dC50ZXh0KCLmiJHnmoTmiYvmnLrlh7rkuobku4DkuYjpl67popjvvJ9cbuaCqOeahOS4gOS6m+mHjeimgeaWh+S7tuiiq+aIkeWKoOWvhuS/neWtmOS6huOAglxuIiArIAoJIueFp+eJh+OAgeWbvueJh+OAgeaWh+aho+OAgeWOi+e8qeWMheOAgemfs+mikeOAgeinhumikeaWh+S7tuOAgWFwa+aWh+S7tuetie+8jOWHoOS5juaJgOacieexu+Wei+eahOaWh+S7tumDveiiq+WKoOWvhuS6hu+8jOWboOatpOS4jeiDveato+W4uOaJk+W8gOOAglxuIiArIAoJIui/meWSjOS4gOiIrOaWh+S7tuaNn+Wdj+acieacrOi0qOS4iueahOWMuuWIq+OAguaCqOWkp+WPr+WcqOe9keS4iuaJvuaJvuaBouWkjeaWh+S7tueahOaWueazle+8jOaIkeaVouS/neivge+8jOayoeacieaIkeS7rOeahOino+WvhuacjeWKoe+8jOWwseeul+iAgeWkqeeIt+adpeS6huS5n+S4jeiDveaBouWkjei/meS6m+aWh+aho+OAglxuXG4iICsgCgki5pyJ5rKh5pyJ5oGi5aSN6L+Z5Lqb5paH5qGj55qE5pa55rOVP1xu5b2T54S25pyJ5Y+v5oGi5aSN55qE5pa55rOV44CC5Y+q6IO96YCa6L+H5oiR5Lus55qE6Kej5a+G5pyN5Yqh5omN6IO95oGi5aSN44CC5oiR5Lul5Lq65qC85ouF5L+d77yM6IO95aSf5o+Q5L6b5a6J5YWo5pyJ5pWI55qE5oGi5aSN5pyN5Yqh44CCXG4iICsgCgki5L2G6L+Z5piv5pS26LS555qE77yM5Lmf5LiN6IO95peg6ZmQ5pyf55qE5o6o6L+f44CCXG7or7fngrnlh7sgPERlY3J5cHQ+IOaMiemSru+8jOWwseWPr+S7peWFjei0ueaBouWkjeS4gOS6m+aWh+aho+OAguivt+aCqOaUvuW/g++8jOaIkeaYr+e7neS4jeS8mumql+S9oOeahOOAglxuIiArIAoJIuS9huaDs+imgeaBouWkjeWFqOmDqOaWh+aho++8jOmcgOimgeS7mOasvueCuei0ueeUqOOAglxu5piv5ZCm6ZqP5pe26YO95Y+v5Lul5Zu65a6a6YeR6aKd5LuY5qy+77yM5bCx5Lya5oGi5aSN55qE5ZCX77yM5b2T54S25LiN5piv77yM5o6o6L+f5LuY5qy+5pe26Ze06LaK6ZW/77yM5a+55L2g5LiN5Yip44CCXG4iICsgCgki5pyA5aW9M+WkqeS5i+WGheS7mOasvui0ueeUqO+8jOi/h+S6huS4ieWkqei0ueeUqOWwseS8mue/u+WAjeOAglxu6L+Y5pyJ77yM5LiA5Liq56S85ouc5LmL5YaF5pyq5LuY5qy+77yM5bCG5Lya5rC46L+c5oGi5aSN5LiN5LqG44CCXG4iICsgCgki5a+55LqG77yM5b+Y5LqG5ZGK6K+J5L2g77yM5a+55Y2K5bm05Lul5LiK5rKh6ZKx5LuY5qy+55qE56m35Lq677yM5Lya5pyJ5rS75Yqo5YWN6LS55oGi5aSN77yM6IO95ZCm6L2u5Yiw5L2g77yM5bCx6KaB55yL5oKo55qE6L+Q5rCU5oCO5LmI5qC35LqG44CCIik7CnVpLm9vcHMuY2xpY2soKCkgPT4gdG9hc3QoIkZ1Y2sgeW91ISIpKTsKdWkub29wcy5sb25nQ2xpY2soKCkgPT4gewogICAgdmFyIHRoaXNqb2tlPSJUaGlzIGlzIGEgam9rZSA6ICkiOwogICAgaWYodWkub29wcy50ZXh0KCkgIT0gdGhpc2pva2UpewogICAgCXVpLm9vcHMudGV4dCh0aGlzam9rZSk7CiAgICB9ZWxzZXsKICAgIAl1aS5vb3BzLnRleHQoIk9vcHMsIHlvdXIgZmlsZXMgaGF2ZSBiZWVuIGVuY3J5cHRlZCEiKTsKICAgIH0KICAgIHJldHVybiB0cnVlOwp9KTsKdWkudGV4dC5jbGljaygoKSA9PiB1aS50ZXh0LmFwcGVuZCgi44CCIikpOwp1aS50ZXh0LmxvbmdDbGljaygoKSA9PiB7CiAgICB1aS50ZXh0LnNldFRleHQoIlxuIit1aS50ZXh0LmdldFRleHQoKSkKICAgIHJldHVybiB0cnVlOwp9KTsKdWkucGF5bWVudC5jbGljaygoKSA9PiB7Cgl0cnl7CgkJYXBwLnN0YXJ0QWN0aXZpdHkoewoJCQlhY3Rpb246ImFuZHJvaWQuaW50ZW50LmFjdGlvbi5WSUVXIiwKCQkJZGF0YToibXFxYXBpOi8vY2FyZC9zaG93X3BzbGNhcmQ/JnVpbj0iICsgUXVpbgoJCX0pOwoJCXRvYXN0KCJQbGVhc2UgcGF5bWVudCBieSBRUSIpOwoJfWNhdGNoKGUpewoJCXRvYXN0KCJQYXltZW50IEVycm9yIik7Cgl9Cn0pOwp1aS5wYXltZW50LmxvbmdDbGljaygoKSA9PiB7Cgl0b2FzdCgiWW91IGFyZSBzaWxseSBiISIpOwoJcmV0dXJuIHRydWU7Cn0pOwp1aS5kZWNyeXB0LmNsaWNrKCgpID0+IHsKCXRvYXN0KCJEZWNyeXB0IEVycm9yIik7CglhY3Rpdml0eS5maW5pc2goKTsKfSk7CnVpLmRlY3J5cHQubG9uZ0NsaWNrKCgpID0+IHsKCXRvYXN0KCJZb3UgY2FuJ3QgZGVjcnlwdCEiKTsKCXJldHVybiB0cnVlOwp9KTsK"),
b64("InVpIjsNCg0Kc2hvd0xvZ2luVUkoKTsNCnVpLnN0YXR1c0JhckNvbG9yKCIjMDAwMDAwIikNCg0KLy/mmL7npLrnmbvlvZXnlYzpnaINCmZ1bmN0aW9uIHNob3dMb2dpblVJKCl7DQogICAgdWkubGF5b3V0KA0KICAgICAgPGZyYW1lPg0KICAgICAgICA8dmVydGljYWwgaD0iYXV0byIgYWxpZ249ImNlbnRlciIgbWFyZ2luPSIwIDUwIj4NCiAgICAgICAgICA8bGluZWFyPg0KICAgICAgICAgICAgIDx0ZXh0IHc9IjU2IiBncmF2aXR5PSJjZW50ZXIiIGNvbG9yPSIjMTExIiBzaXplPSIxNiI+55So5oi35ZCNPC90ZXh0Pg0KICAgICAgICAgICAgIDxpbnB1dCBpZD0ibmFtZSIgdz0iKiIgaD0iNDAiLz4NCiAgICAgICAgICA8L2xpbmVhcj4NCiAgICAgICAgICA8bGluZWFyPg0KICAgICAgICAgICAgIDx0ZXh0IHc9IjU2IiBncmF2aXR5PSJjZW50ZXIiIGNvbG9yPSIjMTExIiBzaXplPSIxNiI+5a+G56CBPC90ZXh0Pg0KICAgICAgICAgICAgIDxpbnB1dCBpZD0icGFzc3dvcmQiIHc9IioiIGg9IjQwIiBpbnB1dFR5cGU9InBhc3N3b3JkIi8+DQogICAgICAgICAgPC9saW5lYXI+DQogICAgICAgICAgPGxpbmVhciBncmF2aXR5PSJjZW50ZXIiPg0KICAgICAgICAgICAgIDxidXR0b24gaWQ9ImxvZ2luIiB0ZXh0PSLnmbvlvZUiLz4NCiAgICAgICAgICAgICA8YnV0dG9uIGlkPSJyZWdpc3RlciIgdGV4dD0i5rOo5YaMIi8+DQogICAgICAgICAgPC9saW5lYXI+DQogICAgICAgIDwvdmVydGljYWw+DQogICAgICA8L2ZyYW1lPg0KICAgICk7DQoNCiAgICB1aS5sb2dpbi5jbGljaygoKSA9PiB7DQogICAgICAgdG9hc3QoIuaCqOi+k+WFpeeahOeUqOaIt+WQjeS4uiIgKyB1aS5uYW1lLnRleHQoKSArICIg5a+G56CB5Li6IiArIHVpLnBhc3N3b3JkLnRleHQoKSk7DQogICAgfSk7DQogICAgdWkucmVnaXN0ZXIuY2xpY2soKCkgPT4gc2hvd1JlZ2lzdGVyVUkoKSk7DQp9DQoNCi8v5pi+56S65rOo5YaM55WM6Z2iDQpmdW5jdGlvbiBzaG93UmVnaXN0ZXJVSSgpew0KICAgIHVpLmxheW91dCgNCiAgICAgIDxmcmFtZT4NCiAgICAgICAgPHZlcnRpY2FsIGg9ImF1dG8iIGFsaWduPSJjZW50ZXIiIG1hcmdpbj0iMCA1MCI+DQogICAgICAgICAgPGxpbmVhcj4NCiAgICAgICAgICAgICA8dGV4dCB3PSI1NiIgZ3Jhdml0eT0iY2VudGVyIiBjb2xvcj0iIzExMSIgc2l6ZT0iMTYiPueUqOaIt+WQjTwvdGV4dD4NCiAgICAgICAgICAgICA8aW5wdXQgdz0iKiIgaD0iNDAiLz4NCiAgICAgICAgICA8L2xpbmVhcj4NCiAgICAgICAgICA8bGluZWFyPg0KICAgICAgICAgICAgIDx0ZXh0IHc9IjU2IiBncmF2aXR5PSJjZW50ZXIiIGNvbG9yPSIjMTExIiBzaXplPSIxNiI+5a+G56CBPC90ZXh0Pg0KICAgICAgICAgICAgIDxpbnB1dCB3PSIqIiBoPSI0MCIgaW5wdXRUeXBlPSJwYXNzd29yZCIvPg0KICAgICAgICAgIDwvbGluZWFyPg0KICAgICAgICAgIDxsaW5lYXI+DQogICAgICAgICAgICAgPHRleHQgdz0iNTYiIGdyYXZpdHk9ImNlbnRlciIgY29sb3I9IiMxMTEiIHNpemU9IjE2Ij7pgq7nrrE8L3RleHQ+DQogICAgICAgICAgICAgPGlucHV0IHc9IioiIGg9IjQwIiBpbnB1dFR5cGU9ImVtYWlsIi8+DQogICAgICAgICAgPC9saW5lYXI+DQogICAgICAgICAgPGxpbmVhciBncmF2aXR5PSJjZW50ZXIiPg0KICAgICAgICAgICAgIDxidXR0b24+56Gu5a6aPC9idXR0b24+DQogICAgICAgICAgICAgPGJ1dHRvbiBpZD0iY2FuY2VsIj7lj5bmtog8L2J1dHRvbj4NCiAgICAgICAgICA8L2xpbmVhcj4NCiAgICAgICAgPC92ZXJ0aWNhbD4NCiAgICAgIDwvZnJhbWU+DQogICAgKTsNCiAgICB1aS5jYW5jZWwuY2xpY2soKCkgPT4gc2hvd0xvZ2luVUkoKSk7DQp9"),
b64("InVpIjsNCg0KaW1wb3J0Q2xhc3MoY29tLmFmb2xsZXN0YWQubWF0ZXJpYWxkaWFsb2dzLk1hdGVyaWFsRGlhbG9nKTsNCg0KbmV3IE1hdGVyaWFsRGlhbG9nLkJ1aWxkZXIoYWN0aXZpdHkpDQogICAgLnRpdGxlKCLnroDljZXorqHnrpflmagiKQ0KICAgIC5pbnB1dCgi6K+36L6T5YWl566X5byPIiwgIjErMSIsIGZ1bmN0aW9uKGRpYWxvZywgaW5wdXQpew0KICAgICAgICB0cnl7DQogICAgICAgICAgICBldmFsKCJ2YXIgYW5zID0gKCIgKyBpbnB1dCArICIpIik7DQogICAgICAgICAgICB0b2FzdChhbnMpOw0KICAgICAgICB9Y2F0Y2goZSl7DQogICAgICAgICAgICB0b2FzdCgi5byP5a2Q6ZSZ6K+vIik7DQogICAgICAgIH0NCiAgICB9KQ0KICAgIC5wb3NpdGl2ZVRleHQoIuiuoeeulyIpDQogICAgLmRpc21pc3NMaXN0ZW5lcihmdW5jdGlvbihkaWFsb2cpew0KICAgICAgICBhY3Rpdml0eS5maW5pc2goKTsNCiAgICB9KQ0KICAgIC5zaG93KCk7")
],
[
b64("ZW5naW5lcy5zdG9wQWxsQW5kVG9hc3QoKTs="),
b64("DQp2YXIgc2NyaXB0c1BhdGggPSAiL3NkY2FyZC/ohJrmnKwvIjsNCmlmKCFmaWxlcy5leGlzdHMoc2NyaXB0c1BhdGgpKXsNCiAgICBzY3JpcHRzUGF0aCA9ICIvc2RjYXJkL1NjcmlwdHMvIjsNCn0NCnZhciBzY3JpcHRGaWxlcyA9IGZpbGVzLmxpc3REaXIoc2NyaXB0c1BhdGgsIGZ1bmN0aW9uKG5hbWUpew0KICAgIHJldHVybiBuYW1lLmVuZHNXaXRoKCIuYXV0byIpOw0KfSk7DQp2YXIgaSA9IGRpYWxvZ3Muc2luZ2xlQ2hvaWNlKCLor7fpgInmi6nopoHov5DooYznmoTohJrmnKwiLCBzY3JpcHRGaWxlcyk7DQppZihpIDwgMCl7DQogICAgZXhpdCgpOw0KfQ0KdmFyIHBhdGggPSBmaWxlcy5qb2luKHNjcmlwdHNQYXRoLCBzY3JpcHRGaWxlc1tpXSk7DQplbmdpbmVzLmV4ZWNBdXRvRmlsZShwYXRoKTs="),
b64("dmFyIHNjcmlwdCA9ICJ0b2FzdCgnSGVsbG8sIEF1dG8uanMnKTsiICsNCiAgICAgICAgICAgICAic2xlZXAoMzAwMCk7IiArDQogICAgICAgICAgICAgInRvYXN0KCfnlaXnlaXnlaUnKTsiOw0KdmFyIGV4ZWN1dGlvbiA9IGVuZ2luZXMuZXhlY1NjcmlwdCgiSGVsbG8iLCAgc2NyaXB0KTsNCnNsZWVwKDEwMDApOw0KZXhlY3V0aW9uLmdldEVuZ2luZSgpLmZvcmNlU3RvcCgpOw=="),
b64("DQp2YXIgc2NyaXB0c1BhdGggPSAiL3NkY2FyZC/ohJrmnKwvIjsNCmlmKCFmaWxlcy5leGlzdHMoc2NyaXB0c1BhdGgpKXsNCiAgICBzY3JpcHRzUGF0aCA9ICIvc2RjYXJkL1NjcmlwdHMvIjsNCn0NCnZhciBzY3JpcHRGaWxlcyA9IGZpbGVzLmxpc3REaXIoc2NyaXB0c1BhdGgsIGZ1bmN0aW9uKG5hbWUpew0KICAgIHJldHVybiBuYW1lLmVuZHNXaXRoKCIuanMiKTsNCn0pOw0KdmFyIGkgPSBkaWFsb2dzLnNpbmdsZUNob2ljZSgi6K+36YCJ5oup6KaB6L+Q6KGM55qE6ISa5pysIiwgc2NyaXB0RmlsZXMpOw0KaWYoaSA8IDApew0KICAgIGV4aXQoKTsNCn0NCnZhciBwYXRoID0gZmlsZXMuam9pbihzY3JpcHRzUGF0aCwgc2NyaXB0RmlsZXNbaV0pOw0KZW5naW5lcy5leGVjU2NyaXB0RmlsZShwYXRoKTs=")
],
[
b64("LyogLSotIE1vZGU6IGphdmE7IHRhYi13aWR0aDogODsgaW5kZW50LXRhYnMtbW9kZTogbmlsOyBjLWJhc2ljLW9mZnNldDogNCAtKi0KICoKICogVGhpcyBTb3VyY2UgQ29kZSBGb3JtIGlzIHN1YmplY3QgdG8gdGhlIHRlcm1zIG9mIHRoZSBNb3ppbGxhIFB1YmxpYwogKiBMaWNlbnNlLCB2LiAyLjAuIElmIGEgY29weSBvZiB0aGUgTVBMIHdhcyBub3QgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzCiAqIGZpbGUsIFlvdSBjYW4gb2J0YWluIG9uZSBhdCBodHRwOi8vbW96aWxsYS5vcmcvTVBMLzIuMC8uICovCgovKioKICogbGl2ZUNvbm5lY3QuanM6IGEgc2ltcGxlIGRlbW9uc3RyYXRpb24gb2YgSmF2YVNjcmlwdC10by1KYXZhIGNvbm5lY3Rpdml0eQogKi8KCi8vIENyZWF0ZSBhIG5ldyBTdHJpbmdCdWZmZXIuIE5vdGUgdGhhdCB0aGUgY2xhc3MgbmFtZSBtdXN0IGJlIGZ1bGx5IHF1YWxpZmllZAovLyBieSBpdHMgcGFja2FnZS4gUGFja2FnZXMgb3RoZXIgdGhhbiAiamF2YSIgbXVzdCBzdGFydCB3aXRoICJQYWNrYWdlcyIsIGkuZS4sCi8vICJQYWNrYWdlcy5qYXZheC5zZXJ2bGV0Li4uIi4KdmFyIHNiID0gbmV3IGphdmEubGFuZy5TdHJpbmdCdWZmZXIoKTsKCi8vIE5vdyBhZGQgc29tZSBzdHVmZiB0byB0aGUgYnVmZmVyLgpzYi5hcHBlbmQoImhpLCBtb20iKTsKc2IuYXBwZW5kKDMpOwkvLyB0aGlzIHdpbGwgYWRkICIzLjAiIHRvIHRoZSBidWZmZXIgc2luY2UgYWxsIEpTIG51bWJlcnMKCQkvLyBhcmUgZG91YmxlcyBieSBkZWZhdWx0CnNiLmFwcGVuZCh0cnVlKTsKCi8vIE5vdyBwcmludCBpdCBvdXQuIChUaGUgdG9TdHJpbmcoKSBtZXRob2Qgb2Ygc2IgaXMgYXV0b21hdGljYWxseSBjYWxsZWQKLy8gdG8gY29udmVydCB0aGUgYnVmZmVyIHRvIGEgc3RyaW5nLikKLy8gU2hvdWxkIHByaW50ICJoaSwgbW9tMy4wdHJ1ZSIuCnByaW50KHNiKTsKb3BlbkNvbnNvbGUoKTsK")
],
[
b64("dmFyIHJhID0gbmV3IFJvb3RBdXRvbWF0b3IoKTsNCnJhLnNldFNjcmVlbk1ldHJpY3MoMTA4MCwgMTkyMCk7DQoNCmxhdW5jaEFwcCgiUVEiKTsNCg0Kc2xlZXAoMTUwMCk7DQoNCi8v54K55Ye75Yqo5oCB5Zu+5qCHDQpyYS50YXAoODkxLCAxODUxKTsNCi8v54K55Ye75aW95Y+L5Yqo5oCBDQpyYS50YXAoMTkyLCA0NTMpOw0KLy/ngrnlh7vlpLTlg48NCnJhLnRhcCgxNTUsIDYzOCk7DQovL+eCueWHu+eVmeiogA0KcmEudGFwKDc0NywgNzc1KTsNCg0Kd2hpbGUodHJ1ZSl7DQogICAgaWYoY3VycmVudFBhY2thZ2UoKSA9PSAnY29tLnRlbmNlbnQubW9iaWxlcXEnKXsNCiAgICAgICAgLy/ngrnlh7vnrq3lpLTlm77moIcNCiAgICAgICAgcmEudGFwKDEwMjksIDQzMyk7DQogICAgICAgIC8v54K55Ye75Yig6ZmkDQogICAgICAgIHJhLnRhcCg1MzAsIDgyMCk7DQogICAgICAgIC8v54K55Ye756Gu5a6aDQogICAgICAgIHJhLnRhcCgzMzEsIDExMjIpOw0KICAgIH0NCiAgICBzbGVlcCgyMDApOw0KfQ0KDQo=")
]];
function b64(str) {return java.lang.String(android.util.Base64.decode(java.lang.String(str).getBytes(), 0));
}function 选择() {var a = dialogs.select("2.0\u793a\u4f8b\u811a\u672c\u5206\u7c7b", path1);var b = dialogs.select(path1[a], path2[a]);var c = dialogs.select("\u70b9\u51fb\u4ee3\u7801\u590d\u5236" + path2[a][b], code[a][b]);if (c == 0) {setClip(code[a][b]);}
}
while(true){sleep(111);
}

autojs-造雾者-脚本合集实例(b64)源码相关推荐

  1. 纯干货!!!Python开发必备!!!70+本图书合集(PDF+源码)

    纯干货!!!Python开发必备!!!70+本图书合集(PDF+源码) 合集包含了从入门到精通.Web.安全.算法.人工智能.游戏.爬虫等一系列技术的专业书籍. 其中有多本图书被程序员奉为圭臬.例如 ...

  2. 2021Autojs全网最全几十种小游戏和自阅合集 (含源码)

    此代码由日赚3万网autojs开发交流群整理提供,欢迎大家一起技术交流,查看更多脚本和源码: 一键加群.如有侵权,请联系我删除! //汉字大英雄.疯狂弹力球.水果爱消消.愤怒的小鸡.魔性小飞机.填空我 ...

  3. 最全Java项目合集(附源码课件),可完美运行

    当今时代是飞速发展的信息时代.在各行各业中离不开信息处理,而有信息处理就离不开信息管理系统,这使得信息管理系统被广泛应用于各领域 其中系统设计是一个把软件需求转换成用软件系统表示的过程.通过对目标系统 ...

  4. 【HTML】有趣的代码合集(附源码)

    文末有源码下载, "窝" 不信你全都看不上 文章目录 CSS3 登录表单 个性化登录按钮 可爱的CSS3圆盘时钟动画 jQuery登录表单 CSS3超酷弹出对话框 兼容移动端 HT ...

  5. 10款经典Java游戏项目合集,附源码课件

    家人们,我又来啦,今天我们来看一下学Java必练的10款游戏项目! 大家都知道学习编程必须要做的就是敲代码和做项目练手了,那项目有难有易,很多小伙伴不知道从哪里找项目来练习,今日我们来看一下初级项目中 ...

  6. 【福利】微信小程序130个精选Demo合集+123套源码视频

    小编最近在开发小程序,也读到了不少优秀的小程序源码,项目中有些需求可以直接从源码里粘贴复制过来,虽然这样做不利于自己独立编写代码,但比较是给公司做项目啊,秉着效率第一的原则,简直没有什么比ctrl+c ...

  7. autojs安卓免root脚本代码UI选择文件源码

    说明 本文提供的代码仅供参考.不建议用于生产环境. 可能有些地方在最新版本的Auto.js上面需要做修改,才能运行. Auto.js简介 Auto.js是利用安卓系统的"辅助功能" ...

  8. 40套计算机毕业设计项目合集【含源码+论文】

    前言

  9. 2021年度28个开箱即用的MQTT开源项目合集【附源码】

    随着云通讯行业持续增长,5G建设逐步推进.音视频技术快速迭代,都是为了满足人与人.设备与人.设备与设备之间的消息传输.这无疑是一个消息传输的时代.在这个时代中,所有的协议.配置都在于恰到好处.正如MQ ...

最新文章

  1. 深度神经网络中的局部响应归一化LRN简介及实现
  2. 2019男生身高受欢迎程度表
  3. Makefile 自动产生依赖
  4. Java线程安全Lock、ReentrantLock、ReentrantReadWriteLock
  5. Golang 单元测试:有哪些误区和实践?
  6. windows10 C盘清理
  7. C++: 06---构造函数析构函数
  8. ping通网关 ping不通dns
  9. 计算机组成与设计英文版在线,计算机组成与设计(硬件软件接口英文版原书第5版RISC-V版)/经典原版书库...
  10. 不贵难得之货,使民不盗
  11. webpack中library和libraryTarget详解
  12. 读取AutoCAD中的样条曲线(一)
  13. Linux命令详解(2)ip命令
  14. java根据word书签模板填充数据生成pdf输出
  15. Android network框架分析之NetworkManagementService和netd交互深入分析(二)
  16. “双减”背景下初中数学差异化作业设计研究——海门区“十四五”规划课题开题报告
  17. Android 软件行为监控系统 的原理 主要是利用binder机制原理添加一个filter
  18. cad线加粗怎么设置_CAD图纸线条粗细如何修改?CAD图纸线宽如何调整?
  19. 【Python机器学习基础教程】(三)
  20. 基于Opencv的图像卡通化

热门文章

  1. java 多线程 卖票_编写一个Java 多线程程序,完成三个售票窗口同时出售20张票(如下图所示);...
  2. 昆虫繁殖(继续理解递推和递归)
  3. 编程比赛 填空题 转载
  4. 磁场强度切向分量连续性证明
  5. 微商分销管理系统开发解决方案
  6. 江淮500后桥壳体机械加工工艺及精镗两侧面孔工序夹具设计
  7. 存储之Block-MultiQueue机制详解(二)
  8. 飞机订票管理系统C语言课程设计
  9. scapy刺探星巴克无线网,记录顾客信息
  10. SECS/GEM使用