开源硬件
Arduino
客制化键盘
Arduino_寄存器
二进制运算
寄存器+二进制运算
LCD-逐字显示
密码依次录入
等待输入
WiFi Duck(无线击键注入攻击平台)
WiFi Duc-New
WiFi Duc-Old
蓝牙无线烧录
ESP8266
ESP-NOW
ESP8266看门狗
ESP8266-休眠模式
ESP01/01S使用说明
WIFI_SD
ESP8266-Web服务器
ESP8266-WIFI自动认证
ESP32
ESP32 ADC2
ESP32_PWM
ESP32_CAM
ESP32 小坦克
ESP32_限电保护
Arduino IDE 添加 ESP32
ESP32-iPhone BLE攻击
STM32
STM32F103-虚拟键盘
STC
STC8G1K08(A)
树莓派-触摸屏
Arduino IDE
Arduino_自制库
Arduino库收集
常见排序算法
冒泡排序
选择排序
插入排序
希尔排序
归并排序
快速排序
计数排序
预处理
millis(运行时长)
Arduino IDE 2.X-修改数据位置
Mixly
Mixly安装教程
Mixly 模块介绍
Mixly-添加ESP32CAM支持
Mixly-库定制工具
模块
4G模块连接物联网
GPS模块
语音模块(JQ8900)
安信可VB语音识别
28BYJ-48(5V步进)
FreeRTOS
FreeRTOS-多任务基础
FreeRTOS-任务共享全局变量
FreeRTOS-多核多任务
FreeRTOS-MUTEX
FreeRTOS-常规程序改多任务
FreeRTOS-定时器
LaserGRBL(激光雕刻)
LaserGRBL-GRBL
GRBL-CNC Shield v4
MicroPython
Scratch
Wokwi(在线仿真)
html转无符号数组
待做开源项目
本文档使用 MrDoc 发布
-
+
首页
html转无符号数组
## 无符号数组还原html [CyberChef](https://gchq.github.io/CyberChef/#recipe=Split(',0x','0x')From_Hex('0x')Gunzip()&input=LDB4MWYsMHg4YiwweDA4LDB4MDgsMHg4NiwweDdlLDB4ZGUsMHg2MSwweDAwLDB4ZmYsMHg2OSwweDZlLDB4NjQsMHg2NSwweDc4LDB4MmUsMHg2OCwweDc0LDB4NmQsMHg2YywweDJlLDB4NjcsMHg3YSwweDAwLDB4NWQsMHg5MCwweDQxLDB4NGIsMHhjNCwweDMwLDB4MTAsMHg4NSwweGVmLDB4ZmUsMHg4YSwweDMxLDB4YzIsMHg5ZSwweDBjLDB4YzUsMHg4YiwweGFiLDB4OTgsMHhmNCwweGVjLDB4NGQsMHgxMCwweDQxLDB4ZjAsMHg5NiwweDI2LDB4YjMsMHhlZCwweDQwLDB4OWEsMHg1OSwweDkyLDB4YjEsMHhjYiwweGZlLDB4ZmIsMHg4ZCwweGE5LDB4YjIsMHhjNSwweDFjLDB4OTIsMHg0YywweGRlLDB4ZTQsMHhjZCwweGM3LDB4MzMsMHhiNywweDgxLDB4YmQsMHg5YywweDhmLDB4MDgsMHg5MywweGNjLDB4YjEsMHhiZiwweDMxLDB4ZWIsMHgwMSwweDc1LDB4OTksMHgwOSwweDVkLDB4NTgsMHhhZiwweGFkLDB4OWMsMHg1MSwweDFjLDB4ZjgsMHhjOSwweGU1LDB4ODIsMHg2MiwweGQ1LDB4YjcsMHgxYywweGY0LDB4OTMsMHhmYSwweDJmLDB4MjcsMHgzNywweGEzLDB4NTUsMHgwYiwweGUxLDB4ZTksMHhjOCwweDU5LDB4MTQsMHg3OCwweDRlLDB4ODIsMHhhOSwweGI2LDB4OWYsMHgyOCwweGM4LDB4NjQsMHgwMywweDJlLDB4ZTQsMHg1MSwweGI3LDB4ZTIsMHg5ZSwweDEyLDB4MDksMHhiOSwweGE4LDB4OGIsMHg3NywweDExLDB4ZWQsMHhjMywweGQ2LDB4NGIsMHg0OCwweDIyLDB4ZjYsMHhlZiwweDNjLDB4YjAsMHhjMCwweDE3LDB4NjYsMHg4NiwweGI3LDB4ODQsMHhmMCwweGU5LDB4MGEsMHhiYywweDYyLDB4NDYsMHhkMywweGFkLDB4ZjIsMHgwYSwweGQ5LDB4NWQsMHgyOSwweGNkLDB4YzAsMHhlMSwweGJjLDB4NzEsMHgwOSwweGI0LDB4MDAsMHgwNSwweGFiLDB4MjIsMHg4ZiwweGJjLDB4NzEsMHg2ZiwweDVhLDB4NzQsMHgwMywweDQ2LDB4MzgsMHg3MCwweGI2LDB4MmEsMHhiOSwweDQ1LDB4MGIsMHg4ZiwweDYzLDB4NDQsMHhlZCwweDA3LDB4ZDUsMHg3ZSwweDVjLDB4OWYsMHg1NCwweGJmLDB4YmIsMHg3YiwweGRlLDB4ZWYsMHgxZiwweDVmLDB4NzYsMHg2OSwweDI4LDB4YzcsMHhkZiwweGZkLDB4YTMsMHg0OSwweDUwLDB4NzMsMHgxMCwweDRhLDB4NjMsMHgzMSwweDVkLDB4NzMsMHhkYiwweDRjLDB4MzAsMHg1ZCwweDlkLDB4ZmQsMHgwNywweGI4LDB4NTIsMHg1NSwweGQwLDB4OWYsMHg2NCwweDJmLDB4N2UsMHgyYSwweDE5LDB4OGQsMHg3MCwweDAxLDB4MDAsMHgwMA),支持在线转换 注意,不能有`换行`和`空格`  ## html转无符号数组 [CyberChef](https://gchq.github.io/CyberChef/#recipe=Gzip('Dynamic%20Huffman%20Coding','','',false)To_Hex('0x%20with%20comma',16)&input=PCFkb2N0eXBlIGh0bWw%2BDQo8aHRtbD4NCiAgICA8aGVhZD4NCiAgICAgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgICAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLGluaXRpYWwtc2NhbGU9MSI%2BDQogICAgICAgIDx0aXRsZT5FU1AzMiBDQU08L3RpdGxlPg0KICAgICAgICA8c3R5bGU%2BDQogICAgICAgICAgICBib2R5IHsNCiAgICAgICAgICAgICAgICBmb250LWZhbWlseTogQXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7DQogICAgICAgICAgICAgICAgYmFja2dyb3VuZDogIzE4MTgxODsNCiAgICAgICAgICAgICAgICBjb2xvcjogI0VGRUZFRjsNCiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE2cHgNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaDIgew0KICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweA0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBzZWN0aW9uLm1haW4gew0KICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXgNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgI21lbnUsc2VjdGlvbi5tYWluIHsNCiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICNtZW51IHsNCiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lOw0KICAgICAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwOw0KICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMzQwcHg7DQogICAgICAgICAgICAgICAgYmFja2dyb3VuZDogIzM2MzYzNjsNCiAgICAgICAgICAgICAgICBwYWRkaW5nOiA4cHg7DQogICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4Ow0KICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC0xMHB4Ow0KICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTBweDsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgI2NvbnRlbnQgew0KICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwOw0KICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGZpZ3VyZSB7DQogICAgICAgICAgICAgICAgcGFkZGluZzogMHB4Ow0KICAgICAgICAgICAgICAgIG1hcmdpbjogMDsNCiAgICAgICAgICAgICAgICAtd2Via2l0LW1hcmdpbi1iZWZvcmU6IDA7DQogICAgICAgICAgICAgICAgbWFyZ2luLWJsb2NrLXN0YXJ0OiAwOw0KICAgICAgICAgICAgICAgIC13ZWJraXQtbWFyZ2luLWFmdGVyOiAwOw0KICAgICAgICAgICAgICAgIG1hcmdpbi1ibG9jay1lbmQ6IDA7DQogICAgICAgICAgICAgICAgLXdlYmtpdC1tYXJnaW4tc3RhcnQ6IDA7DQogICAgICAgICAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogMDsNCiAgICAgICAgICAgICAgICAtd2Via2l0LW1hcmdpbi1lbmQ6IDA7DQogICAgICAgICAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDANCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgZmlndXJlIGltZyB7DQogICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7DQogICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7DQogICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvOw0KICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsNCiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiA4cHg7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA4MDBweCkgYW5kIChvcmllbnRhdGlvbjpsYW5kc2NhcGUpIHsNCiAgICAgICAgICAgICAgICAjY29udGVudCB7DQogICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ZmxleDsNCiAgICAgICAgICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7DQogICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgZmlndXJlIGltZyB7DQogICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7DQogICAgICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSA0MHB4KTsNCiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87DQogICAgICAgICAgICAgICAgICAgIGhlaWdodDogYXV0bw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGZpZ3VyZSB7DQogICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgMCAwIDBweDsNCiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwOw0KICAgICAgICAgICAgICAgICAgICAtd2Via2l0LW1hcmdpbi1iZWZvcmU6IDA7DQogICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ibG9jay1zdGFydDogMDsNCiAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC1tYXJnaW4tYWZ0ZXI6IDA7DQogICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ibG9jay1lbmQ6IDA7DQogICAgICAgICAgICAgICAgICAgIC13ZWJraXQtbWFyZ2luLXN0YXJ0OiAwOw0KICAgICAgICAgICAgICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAwOw0KICAgICAgICAgICAgICAgICAgICAtd2Via2l0LW1hcmdpbi1lbmQ6IDA7DQogICAgICAgICAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAwDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBzZWN0aW9uI2J1dHRvbnMgew0KICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7DQogICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICNuYXYtdG9nZ2xlIHsNCiAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7DQogICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2sNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgI25hdi10b2dnbGUtY2Igew0KICAgICAgICAgICAgICAgIG91dGxpbmU6IDA7DQogICAgICAgICAgICAgICAgb3BhY2l0eTogMDsNCiAgICAgICAgICAgICAgICB3aWR0aDogMDsNCiAgICAgICAgICAgICAgICBoZWlnaHQ6IDANCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgI25hdi10b2dnbGUtY2I6Y2hlY2tlZCsjbWVudSB7DQogICAgICAgICAgICAgICAgZGlzcGxheTogZmxleA0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAuaW5wdXQtZ3JvdXAgew0KICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7DQogICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIycHg7DQogICAgICAgICAgICAgICAgbWFyZ2luOiA1cHggMA0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAuaW5wdXQtZ3JvdXA%2BbGFiZWwgew0KICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4Ow0KICAgICAgICAgICAgICAgIG1pbi13aWR0aDogNDclDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIC5pbnB1dC1ncm91cCBpbnB1dCwuaW5wdXQtZ3JvdXAgc2VsZWN0IHsNCiAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDENCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgLnJhbmdlLW1heCwucmFuZ2UtbWluIHsNCiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQogICAgICAgICAgICAgICAgcGFkZGluZzogMCA1cHgNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgYnV0dG9uIHsNCiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jazsNCiAgICAgICAgICAgICAgICBtYXJnaW46IDVweDsNCiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDEycHg7DQogICAgICAgICAgICAgICAgYm9yZGVyOiAwOw0KICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4Ow0KICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsNCiAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjsNCiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmYzMDM0Ow0KICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDsNCiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE2cHg7DQogICAgICAgICAgICAgICAgb3V0bGluZTogMA0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBidXR0b246aG92ZXIgew0KICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZjQ5NGQNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgYnV0dG9uOmFjdGl2ZSB7DQogICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI2YyMWMyMQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBidXR0b24uZGlzYWJsZWQgew0KICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDsNCiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjYTBhMGEwDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlucHV0W3R5cGU9cmFuZ2VdIHsNCiAgICAgICAgICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7DQogICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7DQogICAgICAgICAgICAgICAgaGVpZ2h0OiAyMnB4Ow0KICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICMzNjM2MzY7DQogICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOw0KICAgICAgICAgICAgICAgIG1hcmdpbjogMA0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpbnB1dFt0eXBlPXJhbmdlXTpmb2N1cyB7DQogICAgICAgICAgICAgICAgb3V0bGluZTogMA0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpbnB1dFt0eXBlPXJhbmdlXTo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2sgew0KICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlOw0KICAgICAgICAgICAgICAgIGhlaWdodDogMnB4Ow0KICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsNCiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjRUZFRkVGOw0KICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7DQogICAgICAgICAgICAgICAgYm9yZGVyOiAwIHNvbGlkICNFRkVGRUYNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaW5wdXRbdHlwZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXRodW1iIHsNCiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsMCwzMCwwKTsNCiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIycHg7DQogICAgICAgICAgICAgICAgd2lkdGg6IDIycHg7DQogICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTBweDsNCiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmYzMDM0Ow0KICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsNCiAgICAgICAgICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7DQogICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLTExLjVweA0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpbnB1dFt0eXBlPXJhbmdlXTpmb2N1czo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2sgew0KICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNFRkVGRUYNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaW5wdXRbdHlwZT1yYW5nZV06Oi1tb3otcmFuZ2UtdHJhY2sgew0KICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlOw0KICAgICAgICAgICAgICAgIGhlaWdodDogMnB4Ow0KICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsNCiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjRUZFRkVGOw0KICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7DQogICAgICAgICAgICAgICAgYm9yZGVyOiAwIHNvbGlkICNFRkVGRUYNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaW5wdXRbdHlwZT1yYW5nZV06Oi1tb3otcmFuZ2UtdGh1bWIgew0KICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwwLDMwLDApOw0KICAgICAgICAgICAgICAgIGhlaWdodDogMjJweDsNCiAgICAgICAgICAgICAgICB3aWR0aDogMjJweDsNCiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MHB4Ow0KICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZjMwMzQ7DQogICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlucHV0W3R5cGU9cmFuZ2VdOjotbXMtdHJhY2sgew0KICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlOw0KICAgICAgICAgICAgICAgIGhlaWdodDogMnB4Ow0KICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsNCiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAwIDA7DQogICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgICAgICAgICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaW5wdXRbdHlwZT1yYW5nZV06Oi1tcy1maWxsLWxvd2VyIHsNCiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjRUZFRkVGOw0KICAgICAgICAgICAgICAgIGJvcmRlcjogMCBzb2xpZCAjRUZFRkVGOw0KICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDANCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaW5wdXRbdHlwZT1yYW5nZV06Oi1tcy1maWxsLXVwcGVyIHsNCiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjRUZFRkVGOw0KICAgICAgICAgICAgICAgIGJvcmRlcjogMCBzb2xpZCAjRUZFRkVGOw0KICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDANCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaW5wdXRbdHlwZT1yYW5nZV06Oi1tcy10aHVtYiB7DQogICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLDAsMzAsMCk7DQogICAgICAgICAgICAgICAgaGVpZ2h0OiAyMnB4Ow0KICAgICAgICAgICAgICAgIHdpZHRoOiAyMnB4Ow0KICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7DQogICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmMzAzNDsNCiAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7DQogICAgICAgICAgICAgICAgaGVpZ2h0OiAycHgNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaW5wdXRbdHlwZT1yYW5nZV06Zm9jdXM6Oi1tcy1maWxsLWxvd2VyIHsNCiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjRUZFRkVGDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlucHV0W3R5cGU9cmFuZ2VdOmZvY3VzOjotbXMtZmlsbC11cHBlciB7DQogICAgICAgICAgICAgICAgYmFja2dyb3VuZDogIzM2MzYzNg0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAuc3dpdGNoIHsNCiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jazsNCiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIycHg7DQogICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4Ow0KICAgICAgICAgICAgICAgIGhlaWdodDogMjJweA0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAuc3dpdGNoIGlucHV0IHsNCiAgICAgICAgICAgICAgICBvdXRsaW5lOiAwOw0KICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7DQogICAgICAgICAgICAgICAgd2lkdGg6IDA7DQogICAgICAgICAgICAgICAgaGVpZ2h0OiAwDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIC5zbGlkZXIgew0KICAgICAgICAgICAgICAgIHdpZHRoOiA1MHB4Ow0KICAgICAgICAgICAgICAgIGhlaWdodDogMjJweDsNCiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMnB4Ow0KICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsNCiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmV5DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIC5zbGlkZXIsLnNsaWRlcjpiZWZvcmUgew0KICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiAuNHMNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgLnNsaWRlcjpiZWZvcmUgew0KICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICAgICAgICAgICAgICBjb250ZW50OiAiIjsNCiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7DQogICAgICAgICAgICAgICAgaGVpZ2h0OiAxNnB4Ow0KICAgICAgICAgICAgICAgIHdpZHRoOiAxNnB4Ow0KICAgICAgICAgICAgICAgIGxlZnQ6IDRweDsNCiAgICAgICAgICAgICAgICB0b3A6IDNweDsNCiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlucHV0OmNoZWNrZWQrLnNsaWRlciB7DQogICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmMzAzNA0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpbnB1dDpjaGVja2VkKy5zbGlkZXI6YmVmb3JlIHsNCiAgICAgICAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgyNnB4KTsNCiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjZweCkNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgc2VsZWN0IHsNCiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjMzYzNjM2Ow0KICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsNCiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIycHg7DQogICAgICAgICAgICAgICAgb3V0bGluZTogMDsNCiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHgNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgLmltYWdlLWNvbnRhaW5lciB7DQogICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMTYwcHgNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgLmNsb3NlIHsNCiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICAgICAgICAgICAgcmlnaHQ6IDVweDsNCiAgICAgICAgICAgICAgICB0b3A6IDVweDsNCiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmYzMDM0Ow0KICAgICAgICAgICAgICAgIHdpZHRoOiAxNnB4Ow0KICAgICAgICAgICAgICAgIGhlaWdodDogMTZweDsNCiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDBweDsNCiAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjsNCiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7DQogICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE4cHg7DQogICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIC5oaWRkZW4gew0KICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUNCiAgICAgICAgICAgIH0NCiAgICAgICAgPC9zdHlsZT4NCiAgICA8L2hlYWQ%2BDQogICAgPGJvZHk%2BDQogICAgICAgIDxzZWN0aW9uIGNsYXNzPSJtYWluIj4NCiAgICAgICAgICAgIDxkaXYgaWQ9ImxvZ28iPg0KICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9Im5hdi10b2dnbGUtY2IiIGlkPSJuYXYtdG9nZ2xlIj4mIzk3NzY7Jm5ic3A7Jm5ic3A7RVNQMzIgQ0FNIOiuvue9rjwvbGFiZWw%2BDQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDxkaXYgaWQ9ImNvbnRlbnQiPg0KICAgICAgICAgICAgICAgIDxkaXYgaWQ9InNpZGViYXIiPg0KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJuYXYtdG9nZ2xlLWNiIiBjaGVja2VkPSJjaGVja2VkIj4NCiAgICAgICAgICAgICAgICAgICAgPG5hdiBpZD0ibWVudSI%2BDQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC1ncm91cCIgaWQ9ImZyYW1lc2l6ZS1ncm91cCI%2BDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iZnJhbWVzaXplIj7liIbovqjnjoc8L2xhYmVsPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgaWQ9ImZyYW1lc2l6ZSIgY2xhc3M9ImRlZmF1bHQtYWN0aW9uIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iMTAiPlVYR0EoMTYwMHgxMjAwKTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSI5Ij5TWEdBKDEyODB4MTAyNCk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iOCI%2BWEdBKDEwMjR4NzY4KTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSI3Ij5TVkdBKDgwMHg2MDApPC9vcHRpb24%2BDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjYiPlZHQSg2NDB4NDgwKTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSI1IiBzZWxlY3RlZD0ic2VsZWN0ZWQiPkNJRig0MDB4Mjk2KTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSI0Ij5RVkdBKDMyMHgyNDApPC9vcHRpb24%2BDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjMiPkhRVkdBKDI0MHgxNzYpPC9vcHRpb24%2BDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjAiPlFRVkdBKDE2MHgxMjApPC9vcHRpb24%2BDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q%2BDQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LWdyb3VwIiBpZD0icXVhbGl0eS1ncm91cCI%2BDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0icXVhbGl0eSI%2B6LSo6YePPC9sYWJlbD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYW5nZS1taW4iPjEwPC9kaXY%2BDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InJhbmdlIiBpZD0icXVhbGl0eSIgbWluPSIxMCIgbWF4PSI2MyIgdmFsdWU9IjEwIiBjbGFzcz0iZGVmYXVsdC1hY3Rpb24iPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhbmdlLW1heCI%2BNjM8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtZ3JvdXAiIGlkPSJicmlnaHRuZXNzLWdyb3VwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJicmlnaHRuZXNzIj7kuq7luqY8L2xhYmVsPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhbmdlLW1pbiI%2BLTI8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0icmFuZ2UiIGlkPSJicmlnaHRuZXNzIiBtaW49Ii0yIiBtYXg9IjIiIHZhbHVlPSIwIiBjbGFzcz0iZGVmYXVsdC1hY3Rpb24iPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhbmdlLW1heCI%2BMjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY%2BDQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC1ncm91cCIgaWQ9ImNvbnRyYXN0LWdyb3VwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJjb250cmFzdCI%2B5Y%2BN5beuPC9sYWJlbD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYW5nZS1taW4iPi0yPC9kaXY%2BDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InJhbmdlIiBpZD0iY29udHJhc3QiIG1pbj0iLTIiIG1heD0iMiIgdmFsdWU9IjAiIGNsYXNzPSJkZWZhdWx0LWFjdGlvbiI%2BDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmFuZ2UtbWF4Ij4yPC9kaXY%2BDQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LWdyb3VwIiBpZD0ic2F0dXJhdGlvbi1ncm91cCI%2BDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0ic2F0dXJhdGlvbiI%2B6aWx5ZKMPC9sYWJlbD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYW5nZS1taW4iPi0yPC9kaXY%2BDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InJhbmdlIiBpZD0ic2F0dXJhdGlvbiIgbWluPSItMiIgbWF4PSIyIiB2YWx1ZT0iMCIgY2xhc3M9ImRlZmF1bHQtYWN0aW9uIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYW5nZS1tYXgiPjI8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtZ3JvdXAiIGlkPSJzcGVjaWFsX2VmZmVjdC1ncm91cCI%2BDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0ic3BlY2lhbF9lZmZlY3QiPueJueauiuaViOaenDwvbGFiZWw%2BDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBpZD0ic3BlY2lhbF9lZmZlY3QiIGNsYXNzPSJkZWZhdWx0LWFjdGlvbiI%2BDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjAiIHNlbGVjdGVkPSJzZWxlY3RlZCI%2B5peg5pWI5p6cPC9vcHRpb24%2BDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjEiPumYtOaApzwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIyIj7ngbDluqY8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iMyI%2B57qi6Imy6LCDPC9vcHRpb24%2BDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjQiPue7v%2BiJsuiwgzwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSI1Ij7ok53oibLosIM8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iNiI%2B5oCA5penPC9vcHRpb24%2BDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q%2BDQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LWdyb3VwIiBpZD0iYXdiLWdyb3VwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJhd2IiPuiHquWKqOeZveW5s%2BihoTwvbGFiZWw%2BDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3dpdGNoIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJhd2IiIHR5cGU9ImNoZWNrYm94IiBjbGFzcz0iZGVmYXVsdC1hY3Rpb24iIGNoZWNrZWQ9ImNoZWNrZWQiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9InNsaWRlciIgZm9yPSJhd2IiPjwvbGFiZWw%2BDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY%2BDQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LWdyb3VwIiBpZD0iYXdiX2dhaW4tZ3JvdXAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9ImF3Yl9nYWluIj7oh6rliqjnmb3lubPooaHlop7nm4o8L2xhYmVsPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN3aXRjaCI%2BDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iYXdiX2dhaW4iIHR5cGU9ImNoZWNrYm94IiBjbGFzcz0iZGVmYXVsdC1hY3Rpb24iIGNoZWNrZWQ9ImNoZWNrZWQiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9InNsaWRlciIgZm9yPSJhd2JfZ2FpbiI%2BPC9sYWJlbD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtZ3JvdXAiIGlkPSJ3Yl9tb2RlLWdyb3VwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJ3Yl9tb2RlIj7nmb3lubPooaHmqKHlvI88L2xhYmVsPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgaWQ9IndiX21vZGUiIGNsYXNzPSJkZWZhdWx0LWFjdGlvbiI%2BDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjAiIHNlbGVjdGVkPSJzZWxlY3RlZCI%2B6Ieq5YqoPC9vcHRpb24%2BDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjEiPuaZtOaclzwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIyIj7lpJrkupE8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iMyI%2B5Yqe5YWs5a6kPC9vcHRpb24%2BDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjQiPuWutjwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY%2BDQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC1ncm91cCIgaWQ9ImFlYy1ncm91cCI%2BDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iYWVjIj7oh6rliqjmm53lhYk8L2xhYmVsPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN3aXRjaCI%2BDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iYWVjIiB0eXBlPSJjaGVja2JveCIgY2xhc3M9ImRlZmF1bHQtYWN0aW9uIiBjaGVja2VkPSJjaGVja2VkIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJzbGlkZXIiIGZvcj0iYWVjIj48L2xhYmVsPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY%2BDQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC1ncm91cCIgaWQ9ImFlYzItZ3JvdXAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9ImFlYzIiPuiHquWKqOi%2Bk%2BWFpeS/oeWPt%2BWinuebijwvbGFiZWw%2BDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3dpdGNoIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJhZWMyIiB0eXBlPSJjaGVja2JveCIgY2xhc3M9ImRlZmF1bHQtYWN0aW9uIiBjaGVja2VkPSJjaGVja2VkIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJzbGlkZXIiIGZvcj0iYWVjMiI%2BPC9sYWJlbD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtZ3JvdXAiIGlkPSJhZV9sZXZlbC1ncm91cCI%2BDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iYWVfbGV2ZWwiPuiHquWKqOabneWFiShBRSnnuqfliKs8L2xhYmVsPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhbmdlLW1pbiI%2BLTI8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0icmFuZ2UiIGlkPSJhZV9sZXZlbCIgbWluPSItMiIgbWF4PSIyIiB2YWx1ZT0iMCIgY2xhc3M9ImRlZmF1bHQtYWN0aW9uIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYW5nZS1tYXgiPjI8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtZ3JvdXAiIGlkPSJhZWNfdmFsdWUtZ3JvdXAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9ImFlY192YWx1ZSI%2B5pud5YWJPC9sYWJlbD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYW5nZS1taW4iPjA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0icmFuZ2UiIGlkPSJhZWNfdmFsdWUiIG1pbj0iMCIgbWF4PSIxMjAwIiB2YWx1ZT0iMjA0IiBjbGFzcz0iZGVmYXVsdC1hY3Rpb24iPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhbmdlLW1heCI%2BMTIwMDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY%2BDQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC1ncm91cCIgaWQ9ImFnYy1ncm91cCI%2BDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iYWdjIj7oh6rliqjlop7nm4rmjqfliLY8L2xhYmVsPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN3aXRjaCI%2BDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iYWdjIiB0eXBlPSJjaGVja2JveCIgY2xhc3M9ImRlZmF1bHQtYWN0aW9uIiBjaGVja2VkPSJjaGVja2VkIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJzbGlkZXIiIGZvcj0iYWdjIj48L2xhYmVsPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY%2BDQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC1ncm91cCBoaWRkZW4iIGlkPSJhZ2NfZ2Fpbi1ncm91cCI%2BDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iYWdjX2dhaW4iPuWinuebijwvbGFiZWw%2BDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmFuZ2UtbWluIj4xeDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJyYW5nZSIgaWQ9ImFnY19nYWluIiBtaW49IjAiIG1heD0iMzAiIHZhbHVlPSI1IiBjbGFzcz0iZGVmYXVsdC1hY3Rpb24iPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhbmdlLW1heCI%2BMzF4PC9kaXY%2BDQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LWdyb3VwIiBpZD0iZ2FpbmNlaWxpbmctZ3JvdXAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9ImdhaW5jZWlsaW5nIj7lop7nm4rkuIrpmZA8L2xhYmVsPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhbmdlLW1pbiI%2BMng8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0icmFuZ2UiIGlkPSJnYWluY2VpbGluZyIgbWluPSIwIiBtYXg9IjYiIHZhbHVlPSIwIiBjbGFzcz0iZGVmYXVsdC1hY3Rpb24iPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhbmdlLW1heCI%2BMTI4eDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY%2BDQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC1ncm91cCIgaWQ9ImJwYy1ncm91cCI%2BDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iYnBjIj7pu5Hlg4/ntKDmoKHmraM8L2xhYmVsPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN3aXRjaCI%2BDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iYnBjIiB0eXBlPSJjaGVja2JveCIgY2xhc3M9ImRlZmF1bHQtYWN0aW9uIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJzbGlkZXIiIGZvcj0iYnBjIj48L2xhYmVsPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY%2BDQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC1ncm91cCIgaWQ9IndwYy1ncm91cCI%2BDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0id3BjIj7nmb3lg4/ntKDmoKHmraM8L2xhYmVsPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN3aXRjaCI%2BDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0id3BjIiB0eXBlPSJjaGVja2JveCIgY2xhc3M9ImRlZmF1bHQtYWN0aW9uIiBjaGVja2VkPSJjaGVja2VkIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJzbGlkZXIiIGZvcj0id3BjIj48L2xhYmVsPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY%2BDQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC1ncm91cCIgaWQ9InJhd19nbWEtZ3JvdXAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9InJhd19nbWEiPuS8vemprOagoeatozwvbGFiZWw%2BDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3dpdGNoIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJyYXdfZ21hIiB0eXBlPSJjaGVja2JveCIgY2xhc3M9ImRlZmF1bHQtYWN0aW9uIiBjaGVja2VkPSJjaGVja2VkIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJzbGlkZXIiIGZvcj0icmF3X2dtYSI%2BPC9sYWJlbD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtZ3JvdXAiIGlkPSJsZW5jLWdyb3VwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJsZW5jIj7nlbjlj5jmoKHmraM8L2xhYmVsPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN3aXRjaCI%2BDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0ibGVuYyIgdHlwZT0iY2hlY2tib3giIGNsYXNzPSJkZWZhdWx0LWFjdGlvbiIgY2hlY2tlZD0iY2hlY2tlZCI%2BDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0ic2xpZGVyIiBmb3I9ImxlbmMiPjwvbGFiZWw%2BDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY%2BDQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LWdyb3VwIiBpZD0iaG1pcnJvci1ncm91cCI%2BDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iaG1pcnJvciI%2B5rC05bmz57%2B76L2sPC9sYWJlbD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzd2l0Y2giPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9ImhtaXJyb3IiIHR5cGU9ImNoZWNrYm94IiBjbGFzcz0iZGVmYXVsdC1hY3Rpb24iIGNoZWNrZWQ9ImNoZWNrZWQiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9InNsaWRlciIgZm9yPSJobWlycm9yIj48L2xhYmVsPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY%2BDQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC1ncm91cCIgaWQ9InZmbGlwLWdyb3VwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJ2ZmxpcCI%2B5Z6C55u057%2B76L2sPC9sYWJlbD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzd2l0Y2giPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9InZmbGlwIiB0eXBlPSJjaGVja2JveCIgY2xhc3M9ImRlZmF1bHQtYWN0aW9uIiBjaGVja2VkPSJjaGVja2VkIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJzbGlkZXIiIGZvcj0idmZsaXAiPjwvbGFiZWw%2BDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY%2BDQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LWdyb3VwIiBpZD0iZGN3LWdyb3VwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJkY3ciPumZjemHh%2BagtzwvbGFiZWw%2BDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3dpdGNoIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJkY3ciIHR5cGU9ImNoZWNrYm94IiBjbGFzcz0iZGVmYXVsdC1hY3Rpb24iIGNoZWNrZWQ9ImNoZWNrZWQiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9InNsaWRlciIgZm9yPSJkY3ciPjwvbGFiZWw%2BDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY%2BDQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LWdyb3VwIiBpZD0iY29sb3JiYXItZ3JvdXAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9ImNvbG9yYmFyIj7lvanmnaHmtYvor5U8L2xhYmVsPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN3aXRjaCI%2BDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iY29sb3JiYXIiIHR5cGU9ImNoZWNrYm94IiBjbGFzcz0iZGVmYXVsdC1hY3Rpb24iPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9InNsaWRlciIgZm9yPSJjb2xvcmJhciI%2BPC9sYWJlbD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtZ3JvdXAiIGlkPSJmYWNlX2RldGVjdC1ncm91cCI%2BDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iZmFjZV9kZXRlY3QiPuS6uuiEuOajgOa1izwvbGFiZWw%2BDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3dpdGNoIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJmYWNlX2RldGVjdCIgdHlwZT0iY2hlY2tib3giIGNsYXNzPSJkZWZhdWx0LWFjdGlvbiI%2BDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0ic2xpZGVyIiBmb3I9ImZhY2VfZGV0ZWN0Ij48L2xhYmVsPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY%2BDQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC1ncm91cCIgaWQ9ImZhY2VfcmVjb2duaXplLWdyb3VwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJmYWNlX3JlY29nbml6ZSI%2B5Lq66IS46K%2BG5YirPC9sYWJlbD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzd2l0Y2giPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9ImZhY2VfcmVjb2duaXplIiB0eXBlPSJjaGVja2JveCIgY2xhc3M9ImRlZmF1bHQtYWN0aW9uIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJzbGlkZXIiIGZvcj0iZmFjZV9yZWNvZ25pemUiPjwvbGFiZWw%2BDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY%2BDQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGlkPSJidXR0b25zIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJnZXQtc3RpbGwiPuaLjeeFpzwvYnV0dG9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9InRvZ2dsZS1zdHJlYW0iPuinhumikTwvYnV0dG9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9ImZhY2VfZW5yb2xsIiBjbGFzcz0iZGlzYWJsZWQiIGRpc2FibGVkPSJkaXNhYmxlZCI%2B5rOo5YaM5Lq66IS4PC9idXR0b24%2BDQogICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24%2BDQogICAgICAgICAgICAgICAgICAgIDwvbmF2Pg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDxmaWd1cmU%2BDQogICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9InN0cmVhbS1jb250YWluZXIiIGNsYXNzPSJpbWFnZS1jb250YWluZXIgaGlkZGVuIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNsb3NlIiBpZD0iY2xvc2Utc3RyZWFtIj7inJY8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgaWQ9InN0cmVhbSIgc3JjPSIiPg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2ZpZ3VyZT4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8L3NlY3Rpb24%2BDQogICAgICAgIDxzY3JpcHQ%2BDQpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKGV2ZW50KSB7DQogIHZhciBiYXNlSG9zdCA9IGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbg0KICB2YXIgc3RyZWFtVXJsID0gYmFzZUhvc3QgKyAnOjgxJw0KDQogIGNvbnN0IGhpZGUgPSBlbCA9PiB7DQogICAgZWwuY2xhc3NMaXN0LmFkZCgnaGlkZGVuJykNCiAgfQ0KICBjb25zdCBzaG93ID0gZWwgPT4gew0KICAgIGVsLmNsYXNzTGlzdC5yZW1vdmUoJ2hpZGRlbicpDQogIH0NCg0KICBjb25zdCBkaXNhYmxlID0gZWwgPT4gew0KICAgIGVsLmNsYXNzTGlzdC5hZGQoJ2Rpc2FibGVkJykNCiAgICBlbC5kaXNhYmxlZCA9IHRydWUNCiAgfQ0KDQogIGNvbnN0IGVuYWJsZSA9IGVsID0%2BIHsNCiAgICBlbC5jbGFzc0xpc3QucmVtb3ZlKCdkaXNhYmxlZCcpDQogICAgZWwuZGlzYWJsZWQgPSBmYWxzZQ0KICB9DQoNCiAgY29uc3QgdXBkYXRlVmFsdWUgPSAoZWwsIHZhbHVlLCB1cGRhdGVSZW1vdGUpID0%2BIHsNCiAgICB1cGRhdGVSZW1vdGUgPSB1cGRhdGVSZW1vdGUgPT0gbnVsbCA/IHRydWUgOiB1cGRhdGVSZW1vdGUNCiAgICBsZXQgaW5pdGlhbFZhbHVlDQogICAgaWYgKGVsLnR5cGUgPT09ICdjaGVja2JveCcpIHsNCiAgICAgIGluaXRpYWxWYWx1ZSA9IGVsLmNoZWNrZWQNCiAgICAgIHZhbHVlID0gISF2YWx1ZQ0KICAgICAgZWwuY2hlY2tlZCA9IHZhbHVlDQogICAgfSBlbHNlIHsNCiAgICAgIGluaXRpYWxWYWx1ZSA9IGVsLnZhbHVlDQogICAgICBlbC52YWx1ZSA9IHZhbHVlDQogICAgfQ0KDQogICAgaWYgKHVwZGF0ZVJlbW90ZSAmJiBpbml0aWFsVmFsdWUgIT09IHZhbHVlKSB7DQogICAgICB1cGRhdGVDb25maWcoZWwpOw0KICAgIH0gZWxzZSBpZighdXBkYXRlUmVtb3RlKXsNCiAgICAgIGlmKGVsLmlkID09PSAiYWVjIil7DQogICAgICAgIHZhbHVlID8gaGlkZShleHBvc3VyZSkgOiBzaG93KGV4cG9zdXJlKQ0KICAgICAgfSBlbHNlIGlmKGVsLmlkID09PSAiYWdjIil7DQogICAgICAgIGlmICh2YWx1ZSkgew0KICAgICAgICAgIHNob3coZ2FpbkNlaWxpbmcpDQogICAgICAgICAgaGlkZShhZ2NHYWluKQ0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgIGhpZGUoZ2FpbkNlaWxpbmcpDQogICAgICAgICAgc2hvdyhhZ2NHYWluKQ0KICAgICAgICB9DQogICAgICB9IGVsc2UgaWYoZWwuaWQgPT09ICJhd2JfZ2FpbiIpew0KICAgICAgICB2YWx1ZSA/IHNob3cod2IpIDogaGlkZSh3YikNCiAgICAgIH0gZWxzZSBpZihlbC5pZCA9PT0gImZhY2VfcmVjb2duaXplIil7DQogICAgICAgIHZhbHVlID8gZW5hYmxlKGVucm9sbEJ1dHRvbikgOiBkaXNhYmxlKGVucm9sbEJ1dHRvbikNCiAgICAgIH0NCiAgICB9DQogIH0NCg0KICBmdW5jdGlvbiB1cGRhdGVDb25maWcgKGVsKSB7DQogICAgbGV0IHZhbHVlDQogICAgc3dpdGNoIChlbC50eXBlKSB7DQogICAgICBjYXNlICdjaGVja2JveCc6DQogICAgICAgIHZhbHVlID0gZWwuY2hlY2tlZCA/IDEgOiAwDQogICAgICAgIGJyZWFrDQogICAgICBjYXNlICdyYW5nZSc6DQogICAgICBjYXNlICdzZWxlY3Qtb25lJzoNCiAgICAgICAgdmFsdWUgPSBlbC52YWx1ZQ0KICAgICAgICBicmVhaw0KICAgICAgY2FzZSAnYnV0dG9uJzoNCiAgICAgIGNhc2UgJ3N1Ym1pdCc6DQogICAgICAgIHZhbHVlID0gJzEnDQogICAgICAgIGJyZWFrDQogICAgICBkZWZhdWx0Og0KICAgICAgICByZXR1cm4NCiAgICB9DQoNCiAgICBjb25zdCBxdWVyeSA9IGAke2Jhc2VIb3N0fS9jb250cm9sP3Zhcj0ke2VsLmlkfSZ2YWw9JHt2YWx1ZX1gDQoNCiAgICBmZXRjaChxdWVyeSkNCiAgICAgIC50aGVuKHJlc3BvbnNlID0%2BIHsNCiAgICAgICAgY29uc29sZS5sb2coYHJlcXVlc3QgdG8gJHtxdWVyeX0gZmluaXNoZWQsIHN0YXR1czogJHtyZXNwb25zZS5zdGF0dXN9YCkNCiAgICAgIH0pDQogIH0NCg0KICBkb2N1bWVudA0KICAgIC5xdWVyeVNlbGVjdG9yQWxsKCcuY2xvc2UnKQ0KICAgIC5mb3JFYWNoKGVsID0%2BIHsNCiAgICAgIGVsLm9uY2xpY2sgPSAoKSA9PiB7DQogICAgICAgIGhpZGUoZWwucGFyZW50Tm9kZSkNCiAgICAgIH0NCiAgICB9KQ0KDQogIC8vIHJlYWQgaW5pdGlhbCB2YWx1ZXMNCiAgZmV0Y2goYCR7YmFzZUhvc3R9L3N0YXR1c2ApDQogICAgLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7DQogICAgICByZXR1cm4gcmVzcG9uc2UuanNvbigpDQogICAgfSkNCiAgICAudGhlbihmdW5jdGlvbiAoc3RhdGUpIHsNCiAgICAgIGRvY3VtZW50DQogICAgICAgIC5xdWVyeVNlbGVjdG9yQWxsKCcuZGVmYXVsdC1hY3Rpb24nKQ0KICAgICAgICAuZm9yRWFjaChlbCA9PiB7DQogICAgICAgICAgdXBkYXRlVmFsdWUoZWwsIHN0YXRlW2VsLmlkXSwgZmFsc2UpDQogICAgICAgIH0pDQogICAgfSkNCg0KICBjb25zdCB2aWV3ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N0cmVhbScpDQogIGNvbnN0IHZpZXdDb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3RyZWFtLWNvbnRhaW5lcicpDQogIGNvbnN0IHN0aWxsQnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dldC1zdGlsbCcpDQogIGNvbnN0IHN0cmVhbUJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2dnbGUtc3RyZWFtJykNCiAgY29uc3QgZW5yb2xsQnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZhY2VfZW5yb2xsJykNCiAgY29uc3QgY2xvc2VCdXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xvc2Utc3RyZWFtJykNCg0KICBjb25zdCBzdG9wU3RyZWFtID0gKCkgPT4gew0KICAgIHdpbmRvdy5zdG9wKCk7DQogICAgc3RyZWFtQnV0dG9uLmlubmVySFRNTCA9ICflkK/liqgg6KeG6aKRJw0KICB9DQoNCiAgY29uc3Qgc3RhcnRTdHJlYW0gPSAoKSA9PiB7DQogICAgdmlldy5zcmMgPSBgJHtzdHJlYW1Vcmx9L3N0cmVhbWANCiAgICBzaG93KHZpZXdDb250YWluZXIpDQogICAgc3RyZWFtQnV0dG9uLmlubmVySFRNTCA9ICflgZzmraIg6KeG6aKRJw0KICB9DQoNCiAgLy8gQXR0YWNoIGFjdGlvbnMgdG8gYnV0dG9ucw0KICBzdGlsbEJ1dHRvbi5vbmNsaWNrID0gKCkgPT4gew0KICAgIHN0b3BTdHJlYW0oKQ0KICAgIHZpZXcuc3JjID0gYCR7YmFzZUhvc3R9L2NhcHR1cmU/X2NiPSR7RGF0ZS5ub3coKX1gDQogICAgc2hvdyh2aWV3Q29udGFpbmVyKQ0KICB9DQoNCiAgY2xvc2VCdXR0b24ub25jbGljayA9ICgpID0%2BIHsNCiAgICBzdG9wU3RyZWFtKCkNCiAgICBoaWRlKHZpZXdDb250YWluZXIpDQogIH0NCg0KICBzdHJlYW1CdXR0b24ub25jbGljayA9ICgpID0%2BIHsNCiAgICBjb25zdCBzdHJlYW1FbmFibGVkID0gc3RyZWFtQnV0dG9uLmlubmVySFRNTCA9PT0gJ%2BWBnOatoiDop4bpopEnDQogICAgaWYgKHN0cmVhbUVuYWJsZWQpIHsNCiAgICAgIHN0b3BTdHJlYW0oKQ0KICAgIH0gZWxzZSB7DQogICAgICBzdGFydFN0cmVhbSgpDQogICAgfQ0KICB9DQoNCiAgZW5yb2xsQnV0dG9uLm9uY2xpY2sgPSAoKSA9PiB7DQogICAgdXBkYXRlQ29uZmlnKGVucm9sbEJ1dHRvbikNCiAgfQ0KDQogIC8vIEF0dGFjaCBkZWZhdWx0IG9uIGNoYW5nZSBhY3Rpb24NCiAgZG9jdW1lbnQNCiAgICAucXVlcnlTZWxlY3RvckFsbCgnLmRlZmF1bHQtYWN0aW9uJykNCiAgICAuZm9yRWFjaChlbCA9PiB7DQogICAgICBlbC5vbmNoYW5nZSA9ICgpID0%2BIHVwZGF0ZUNvbmZpZyhlbCkNCiAgICB9KQ0KDQogIC8vIEN1c3RvbSBhY3Rpb25zDQogIC8vIEdhaW4NCiAgY29uc3QgYWdjID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FnYycpDQogIGNvbnN0IGFnY0dhaW4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWdjX2dhaW4tZ3JvdXAnKQ0KICBjb25zdCBnYWluQ2VpbGluZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdnYWluY2VpbGluZy1ncm91cCcpDQogIGFnYy5vbmNoYW5nZSA9ICgpID0%2BIHsNCiAgICB1cGRhdGVDb25maWcoYWdjKQ0KICAgIGlmIChhZ2MuY2hlY2tlZCkgew0KICAgICAgc2hvdyhnYWluQ2VpbGluZykNCiAgICAgIGhpZGUoYWdjR2FpbikNCiAgICB9IGVsc2Ugew0KICAgICAgaGlkZShnYWluQ2VpbGluZykNCiAgICAgIHNob3coYWdjR2FpbikNCiAgICB9DQogIH0NCg0KICAvLyBFeHBvc3VyZQ0KICBjb25zdCBhZWMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWVjJykNCiAgY29uc3QgZXhwb3N1cmUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWVjX3ZhbHVlLWdyb3VwJykNCiAgYWVjLm9uY2hhbmdlID0gKCkgPT4gew0KICAgIHVwZGF0ZUNvbmZpZyhhZWMpDQogICAgYWVjLmNoZWNrZWQgPyBoaWRlKGV4cG9zdXJlKSA6IHNob3coZXhwb3N1cmUpDQogIH0NCg0KICAvLyBBV0INCiAgY29uc3QgYXdiID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2F3Yl9nYWluJykNCiAgY29uc3Qgd2IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnd2JfbW9kZS1ncm91cCcpDQogIGF3Yi5vbmNoYW5nZSA9ICgpID0%2BIHsNCiAgICB1cGRhdGVDb25maWcoYXdiKQ0KICAgIGF3Yi5jaGVja2VkID8gc2hvdyh3YikgOiBoaWRlKHdiKQ0KICB9DQoNCiAgLy8gRGV0ZWN0aW9uIGFuZCBmcmFtZXNpemUNCiAgY29uc3QgZGV0ZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZhY2VfZGV0ZWN0JykNCiAgY29uc3QgcmVjb2duaXplID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZhY2VfcmVjb2duaXplJykNCiAgY29uc3QgZnJhbWVzaXplID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZyYW1lc2l6ZScpDQoNCiAgZnJhbWVzaXplLm9uY2hhbmdlID0gKCkgPT4gew0KICAgIHVwZGF0ZUNvbmZpZyhmcmFtZXNpemUpDQogICAgaWYgKGZyYW1lc2l6ZS52YWx1ZSA%2BIDUpIHsNCiAgICAgIHVwZGF0ZVZhbHVlKGRldGVjdCwgZmFsc2UpDQogICAgICB1cGRhdGVWYWx1ZShyZWNvZ25pemUsIGZhbHNlKQ0KICAgIH0NCiAgfQ0KDQogIGRldGVjdC5vbmNoYW5nZSA9ICgpID0%2BIHsNCiAgICBpZiAoZnJhbWVzaXplLnZhbHVlID4gNSkgew0KICAgICAgYWxlcnQoIlBsZWFzZSBzZWxlY3QgQ0lGIG9yIGxvd2VyIHJlc29sdXRpb24gYmVmb3JlIGVuYWJsaW5nIHRoaXMgZmVhdHVyZSEiKTsNCiAgICAgIHVwZGF0ZVZhbHVlKGRldGVjdCwgZmFsc2UpDQogICAgICByZXR1cm47DQogICAgfQ0KICAgIHVwZGF0ZUNvbmZpZyhkZXRlY3QpDQogICAgaWYgKCFkZXRlY3QuY2hlY2tlZCkgew0KICAgICAgZGlzYWJsZShlbnJvbGxCdXR0b24pDQogICAgICB1cGRhdGVWYWx1ZShyZWNvZ25pemUsIGZhbHNlKQ0KICAgIH0NCiAgfQ0KDQogIHJlY29nbml6ZS5vbmNoYW5nZSA9ICgpID0%2BIHsNCiAgICBpZiAoZnJhbWVzaXplLnZhbHVlID4gNSkgew0KICAgICAgYWxlcnQoIlBsZWFzZSBzZWxlY3QgQ0lGIG9yIGxvd2VyIHJlc29sdXRpb24gYmVmb3JlIGVuYWJsaW5nIHRoaXMgZmVhdHVyZSEiKTsNCiAgICAgIHVwZGF0ZVZhbHVlKHJlY29nbml6ZSwgZmFsc2UpDQogICAgICByZXR1cm47DQogICAgfQ0KICAgIHVwZGF0ZUNvbmZpZyhyZWNvZ25pemUpDQogICAgaWYgKHJlY29nbml6ZS5jaGVja2VkKSB7DQogICAgICBlbmFibGUoZW5yb2xsQnV0dG9uKQ0KICAgICAgdXBkYXRlVmFsdWUoZGV0ZWN0LCB0cnVlKQ0KICAgIH0gZWxzZSB7DQogICAgICBkaXNhYmxlKGVucm9sbEJ1dHRvbikNCiAgICB9DQogIH0NCn0pDQoNCiAgICAgICAgPC9zY3JpcHQ%2BDQogICAgPC9ib2R5Pg0KPC9odG1sPg0K)  也可以下载离线版  在线版左侧有下载链接
造物者W
2023年4月10日 14:15
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码