From 3d6384d919f8fcbf061a048e30102fe3c963e1bd Mon Sep 17 00:00:00 2001 From: limingzhe <limingzhe@iplayabc.com> Date: Mon, 15 Aug 2022 10:23:17 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=8A=A8=E7=94=BB=E7=BC=A9=E6=94=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/OP15/scene/OP15.js | 8 +- .../ddbf4888-2678-4720-899f-a7e48a445d42.js | 645 +- ...dbf4888-2678-4720-899f-a7e48a445d42.js.map | 2 +- library/uuid-to-mtime.json | 208 +- temp/quick-scripts/dst/__file_stats__.json | 2 +- temp/quick-scripts/dst/__qc_bundle__.js | 11121 ++++++++-------- temp/quick-scripts/dst/__quick_compile__.js | 2 +- .../dst/assets/OP15/scene/OP15.js | 647 +- .../src/assets/OP15/scene/OP15.js | 645 +- .../src/assets/OP15/scene/OP15.js.map | 2 +- temp/startup.json | 2 +- 11 files changed, 7645 insertions(+), 5639 deletions(-) diff --git a/assets/OP15/scene/OP15.js b/assets/OP15/scene/OP15.js index 3e12207..5747f6c 100644 --- a/assets/OP15/scene/OP15.js +++ b/assets/OP15/scene/OP15.js @@ -653,7 +653,8 @@ cc.Class({ }, getDefaultData() { - return {"begin_audio":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","begin_sep_time":1,"guide_audio":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","playing_audio":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","right_audio":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","wrong_audio":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","wrong_audio1":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","wrong_audio2":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","end_audio":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","bgItem":{"url":"http://staging-teach.cdn.ireadabc.com/84ec6edc20bceaaa9dbe824092b6860d.png","rect":{"x":736.95,"y":0,"width":599.09,"height":775}},"hotZoneItemArr":[{"id":"1659333645573","index":0,"audio_url":"http://staging-teach.cdn.ireadabc.com/5a1a2670845bfe76662e86d9a3a69f81.mp3","itemType":"rect","fontScale":1.61953125,"imgScale":1,"imgSizeW":0,"imgSizeH":0,"mapScale":1.61953125,"dragDot":{"x":1036.5,"y":387.5},"gIdx":"1","labelText":"1","posX":887.5,"posY":165.5,"skeJsonData":{"url":"http://staging-teach.cdn.ireadabc.com/133a1f60719ed26247e35dc022d82862.json","name":"spineboy-pro.json"},"texJsonData":{"url":"http://staging-teach.cdn.ireadabc.com/e0945b8265ea3b8053afb814c6b849d3.atlas","name":"spineboy-pro.atlas"},"texPngData":{"url":"http://staging-teach.cdn.ireadabc.com/517553f50224915148f9efc5b7556798.png","name":"spineboy-pro.png"},"animType":"spine","rect":{"x":48.05,"y":65.5,"width":205,"height":200}},{"id":"1659334098930","index":1,"audio_url":"http://staging-teach.cdn.ireadabc.com/16eb06a6beb9e4fa77c9b5d2d643ab29.mp3","itemType":"rect","fontScale":1.61953125,"imgScale":1,"imgSizeW":0,"imgSizeH":0,"mapScale":1.61953125,"dragDot":{"x":1036.5,"y":387.5},"gIdx":"0","labelText":"1","posX":1212.5,"posY":643.5,"skeJsonData":{"url":"http://staging-teach.cdn.ireadabc.com/679fed26daa464819d553de6331b3552.json","name":"alien-pro.json"},"texJsonData":{"url":"http://staging-teach.cdn.ireadabc.com/65d8214c6b5c5d0496e17adb0408276a.atlas","name":"alien-pro.atlas"},"texPngData":{"url":"http://staging-teach.cdn.ireadabc.com/a319b372899239325b90bb4ec07b4970.png","name":"alien-pro.png"},"animType":"spine","rect":{"x":375.56,"y":543.5,"width":200,"height":200}}]} + return {"begin_audio":"https://teach.cdn.ireadabc.com/9be46c9adb540ed8a60763f1e657ccb7.mp3","begin_sep_time":66,"guide_audio":"https://teach.cdn.ireadabc.com/9523c8ed45faee686363dd157b0d7426.mp3","playing_audio":"https://teach.cdn.ireadabc.com/d6a953052a6f80549730cb4307c55719.mp3","right_audio":"https://teach.cdn.ireadabc.com/43791fc418e666df5e9ec1b7bf936409.mp3","wrong_audio":"https://teach.cdn.ireadabc.com/7dd85f025a132c2eef8daee38d900287.mp3","wrong_audio1":"https://teach.cdn.ireadabc.com/a76afb06af0799bf538e38f9f80a2261.mp3","wrong_audio2":"https://teach.cdn.ireadabc.com/daee88b6f2eadd78b60436eedffcae08.mp3","end_audio":"https://teach.cdn.ireadabc.com/9c1e87b3c184b06e14e44bb058b9804e.mp3","bgItem":{"url":"https://teach.cdn.ireadabc.com/16b6dacd8e6c1ce6da16f500a66b366b.jpg","rect":{"x":319.68,"y":0,"width":257.64,"height":342}},"hotZoneItemArr":[{"id":"1650544807877","index":0,"itemType":"pic","fontScale":0.70078125,"imgScale":1,"imgSizeW":0,"imgSizeH":0,"mapScale":0.70078125,"dragDot":{"x":448.5,"y":176.65207877461702},"gIdx":"1","skeJsonData":{"url":"https://teach.cdn.ireadabc.com/66c7c0847c33f7f95cb0035fe14c4405.json","name":"monkey_ske.json"},"texJsonData":{"url":"https://teach.cdn.ireadabc.com/98a8272cd2d97047b090ff10e948b978.json","name":"monkey_tex.json"},"texPngData":{"url":"https://teach.cdn.ireadabc.com/c35ced408ad68a52c4ec5375373d3627.png","name":"monkey_tex.png"},"rect":{"x":128.83,"y":171,"width":0,"height":0}},{"id":"1650546079000","index":1,"audio_url":"https://teach.cdn.ireadabc.com/f9edc84a669688c5abddd55e2aab015d.mp3","itemType":"rect","fontScale":0.70078125,"imgScale":1,"imgSizeW":0,"imgSizeH":0,"mapScale":0.70078125,"dragDot":{"x":448.5,"y":170.54984583761566},"gIdx":"0","labelText":"21.3","posX":692.4127500193598,"posY":218.14695959185556,"skeJsonData":{"url":"https://teach.cdn.ireadabc.com/e3c67a25dd3bb34fe113e126e6e1cc81.json","name":"ox_ske.json"},"texJsonData":{"url":"https://teach.cdn.ireadabc.com/81d487bf31d3a4d0f25f44c184ba9233.json","name":"ox_tex.json"},"texPngData":{"url":"https://teach.cdn.ireadabc.com/e199392b52a735f6e37a6815ec3bb10e.png","name":"ox_tex.png"},"rect":{"x":159.34,"y":138.66,"width":38.83,"height":38.83}},{"id":"1650546232189","index":2,"itemType":"rect","fontScale":0.70078125,"imgScale":1,"imgSizeW":0,"imgSizeH":0,"mapScale":0.70078125,"dragDot":{"x":448.5,"y":170.54984583761566},"gIdx":"1","skeJsonData":{"url":"https://teach.cdn.ireadabc.com/0a3ea93c62ff4087859ed587020c53b5.json","name":"car_ske.json"},"texJsonData":{"url":"https://teach.cdn.ireadabc.com/6000e4fbbb95f545afa5456c64d8c7d1.json","name":"car_tex.json"},"texPngData":{"url":"https://teach.cdn.ireadabc.com/75e9972c15d2a67deedf60d448fd4e69.png","name":"car_tex.png"},"rect":{"x":36.4,"y":78.56,"width":184.87,"height":184.87}},{"id":"1650546321127","index":3,"itemType":"rect","fontScale":0.70078125,"imgScale":1,"imgSizeW":0,"imgSizeH":0,"mapScale":0.70078125,"dragDot":{"x":448.5,"y":170.54984583761566},"gIdx":"1","skeJsonData":{"url":"https://teach.cdn.ireadabc.com/d4c1e1abcf3d8f5415747fd2599b8a8c.json","name":"Chair_ske.json"},"texJsonData":{"url":"https://teach.cdn.ireadabc.com/1d7254eb7fa3008e8178347bb944cdcb.json","name":"Chair_tex.json"},"texPngData":{"url":"https://teach.cdn.ireadabc.com/48e85e8ff384eed72dfe865fc981e18c.png","name":"Chair_tex.png"},"rect":{"x":36.4,"y":78.56,"width":184.87,"height":184.87}},{"id":"1650546335240","index":4,"audio_url":"https://teach.cdn.ireadabc.com/6182d46bad09fccb8934217d33557204.mp3","itemType":"rect","fontScale":0.70078125,"imgScale":1,"imgSizeW":0,"imgSizeH":0,"mapScale":0.70078125,"dragDot":{"x":448.5,"y":170.54984583761566},"gIdx":"0","labelText":"53","posX":452.5,"posY":129,"skeJsonData":{"url":"https://teach.cdn.ireadabc.com/b462d80c21aa75995dd99f0f43ccf1e6.json","name":"quilt_ske.json"},"texJsonData":{"url":"https://teach.cdn.ireadabc.com/866c9e2987870947fc63bce108ef157a.json","name":"quilt_tex.json"},"texPngData":{"url":"https://teach.cdn.ireadabc.com/d952c37f40c3cf07e024edfd4416423e.png","name":"quilt_tex.png"},"rect":{"x":71.99,"y":100.75,"width":50.83,"height":36.97}},{"id":"1650546644333","index":5,"itemType":"rect","fontScale":0.70078125,"imgScale":1,"imgSizeW":0,"imgSizeH":0,"mapScale":0.70078125,"dragDot":{"x":448.5,"y":170.54984583761566},"gIdx":"1","skeJsonData":{"url":"https://teach.cdn.ireadabc.com/6b8a1a7b0fd23686ea60465279cd4da0.json","name":"robot_ske.json"},"texJsonData":{"url":"https://teach.cdn.ireadabc.com/31a74ed95fe48adab00702675811c3a8.json","name":"robot_tex.json"},"texPngData":{"url":"https://teach.cdn.ireadabc.com/e57052537d89356b0a79d8cb77980219.png","name":"robot_tex.png"},"rect":{"x":36.4,"y":78.56,"width":184.87,"height":184.87}},{"id":"1650546658697","index":6,"itemType":"rect","fontScale":0.70078125,"imgScale":1,"imgSizeW":0,"imgSizeH":0,"mapScale":0.70078125,"dragDot":{"x":448.5,"y":170.54984583761566},"gIdx":"1","skeJsonData":{"url":"https://teach.cdn.ireadabc.com/bf3616060460439eeb3fd5227370e15a.json","name":"panda_ske.json"},"texJsonData":{"url":"https://teach.cdn.ireadabc.com/2dafeb25c973c910035ff7ed1a6a6334.json","name":"panda_tex.json"},"texPngData":{"url":"https://teach.cdn.ireadabc.com/75d90b05345fa470285ac488cb205cfd.png","name":"panda_tex.png"},"rect":{"x":36.4,"y":78.56,"width":184.87,"height":184.87}},{"id":"1650546672448","index":7,"itemType":"rect","fontScale":0.70078125,"imgScale":1,"imgSizeW":0,"imgSizeH":0,"mapScale":0.70078125,"dragDot":{"x":448.5,"y":170.54984583761566},"gIdx":"1","skeJsonData":{"url":"https://teach.cdn.ireadabc.com/5feff811b0117dd8e67973072e60d310.json","name":"queen_1_ske.json"},"texJsonData":{"url":"https://teach.cdn.ireadabc.com/bb5856b92b09c5fe7a1da00bb68134ca.json","name":"queen_1_tex.json"},"texPngData":{"url":"https://teach.cdn.ireadabc.com/f4e5a138b086ef3dcfa57432543b66e9.png","name":"queen_1_tex.png"},"animType":"dragonBone","rect":{"x":36.4,"y":78.56,"width":184.87,"height":184.87}},{"id":"1650546687069","index":8,"audio_url":"https://teach.cdn.ireadabc.com/301858df7b07e661426a006acb26059c.mp3","itemType":"rect","fontScale":0.70078125,"imgScale":1,"imgSizeW":0,"imgSizeH":0,"mapScale":0.70078125,"dragDot":{"x":448.5,"y":170.54984583761566},"gIdx":"0","labelText":"42.5","posX":512.3883524629834,"posY":259.83617125849,"skeJsonData":{"url":"https://teach.cdn.ireadabc.com/f3a8efcd1850ee8a6cee89a18e86dc4a.json","name":"milk_ske.json"},"texJsonData":{"url":"https://teach.cdn.ireadabc.com/73b05f19d419bd3ac17c2b92dab88423.json","name":"milk_tex.json"},"texPngData":{"url":"https://teach.cdn.ireadabc.com/e38375da46f85a23202d5cbc812d62e4.png","name":"milk_tex.png"},"rect":{"x":37.72,"y":168.1,"width":21.17,"height":40.34}},{"id":"1650547060490","index":9,"audio_url":"https://teach.cdn.ireadabc.com/05e5b29aeffa4ef94bcc5b23167aec90.mp3","itemType":"rect","fontScale":0.70078125,"imgScale":1,"imgSizeW":0,"imgSizeH":0,"mapScale":0.70078125,"dragDot":{"x":448.5,"y":170.54984583761566},"gIdx":"0","labelText":"47.7","posX":483.22135734006736,"posY":245.38039407076505,"skeJsonData":{"url":"https://teach.cdn.ireadabc.com/99a6e6d9361eca7e51ed34ca2e0fd017.json","name":"bird_ske.json"},"texJsonData":{"url":"https://teach.cdn.ireadabc.com/6a379ddbe6df1806368c43c8ee82332d.json","name":"bird_tex.json"},"texPngData":{"url":"https://teach.cdn.ireadabc.com/cf04c63104d89511902578944061f980.png","name":"bird_tex.png"},"rect":{"x":17.91,"y":140.83,"width":18.52,"height":73.95}},{"id":"1650547373869","index":10,"itemType":"rect","fontScale":0.70078125,"imgScale":1,"imgSizeW":0,"imgSizeH":0,"mapScale":0.70078125,"dragDot":{"x":448.5,"y":170.54984583761566},"gIdx":"1","labelText":"60","posX":420.5,"posY":295,"skeJsonData":{"url":"https://teach.cdn.ireadabc.com/7ebc28f3f339b16ca48d20f2a3eb44c1.json","name":"alligator_ske.json"},"texJsonData":{"url":"https://teach.cdn.ireadabc.com/b04e8206fd217bd22dcdac1008393317.json","name":"alligator_tex.json"},"texPngData":{"url":"https://teach.cdn.ireadabc.com/b3990d94612bd3d6e25cf200f85e4334.png","name":"alligator_tex.png"},"rect":{"x":16.06,"y":229.24,"width":103.52,"height":86.89}},{"id":"1650547482398","index":11,"itemType":"rect","fontScale":0.70078125,"imgScale":1,"imgSizeW":0,"imgSizeH":0,"mapScale":0.70078125,"dragDot":{"x":448.5,"y":170.54984583761566},"gIdx":"1","skeJsonData":{"url":"https://teach.cdn.ireadabc.com/a19f2ed7c297c70c639e54e969d64593.json","name":"rabbit_ske.json"},"texJsonData":{"url":"https://teach.cdn.ireadabc.com/4b4f8189cf79fadd7e6533ad84db96be.json","name":"rabbit_tex.json"},"texPngData":{"url":"https://teach.cdn.ireadabc.com/8f953c861eac94e4e22a8e4ec3eb56b5.png","name":"rabbit_tex.png"},"rect":{"x":36.4,"y":78.56,"width":184.87,"height":184.87}},{"id":"1650547496232","index":12,"itemType":"rect","fontScale":0.70078125,"imgScale":1,"imgSizeW":0,"imgSizeH":0,"mapScale":0.70078125,"dragDot":{"x":448.5,"y":170.54984583761566},"gIdx":"1","skeJsonData":{"url":"https://teach.cdn.ireadabc.com/89e0fc6085c294866142803b4ff267ba.json","name":"King_ske.json"},"texJsonData":{"url":"https://teach.cdn.ireadabc.com/d6cfd2d9cd2cd9aff09ab7f03e287421.json","name":"King_tex.json"},"texPngData":{"url":"https://teach.cdn.ireadabc.com/8c02c3561a2eea0423cb1102200e76f9.png","name":"King_tex.png"},"rect":{"x":36.4,"y":78.56,"width":184.87,"height":184.87}},{"id":"1650547510648","index":13,"audio_url":"https://teach.cdn.ireadabc.com/717ee9713b18d32d38ee089c0abc85ea.mp3","itemType":"rect","fontScale":0.70078125,"imgScale":1,"imgSizeW":0,"imgSizeH":0,"mapScale":0.70078125,"dragDot":{"x":448.5,"y":170.54984583761566},"gIdx":"0","labelText":"10.2","posX":641.6680134951944,"posY":288.93672702541255,"skeJsonData":{"url":"https://teach.cdn.ireadabc.com/3b7113ebdedcae54be6d0b9633875b88.json","name":"net_ske.json"},"texJsonData":{"url":"https://teach.cdn.ireadabc.com/fc810762f1f2025585e722e43e94137b.json","name":"net_tex.json"},"texPngData":{"url":"https://teach.cdn.ireadabc.com/5c90820da4f559280fee4579e8db2dbc.png","name":"net_tex.png"},"rect":{"x":123.03,"y":183.02,"width":37.9,"height":52.68}},{"id":"1650547555018","index":14,"itemType":"rect","fontScale":0.70078125,"imgScale":1,"imgSizeW":0,"imgSizeH":0,"mapScale":0.70078125,"dragDot":{"x":448.5,"y":170.54984583761566},"gIdx":"1","skeJsonData":{"url":"https://teach.cdn.ireadabc.com/0a5c8df5a23aca7a7540b87340c7608f.json","name":"ostrich_ske.json"},"texJsonData":{"url":"https://teach.cdn.ireadabc.com/2478573c91d1a83fa038e7f6a9db8a85.json","name":"ostrich_tex.json"},"texPngData":{"url":"https://teach.cdn.ireadabc.com/4619ace67e5770e1fd7fc3ff76e7263e.png","name":"ostrich_tex.png"},"rect":{"x":36.4,"y":78.56,"width":184.87,"height":184.87}},{"id":"1650547573305","index":15,"audio_url":"https://teach.cdn.ireadabc.com/b7bc161c3a3ee143a53058691abf4fa9.mp3","itemType":"rect","fontScale":0.70078125,"imgScale":1,"imgSizeW":0,"imgSizeH":0,"mapScale":0.70078125,"dragDot":{"x":448.5,"y":170.54984583761566},"gIdx":"0","labelText":"15.9","posX":670.8119839772754,"posY":137.87940870201697,"skeJsonData":{"url":"https://teach.cdn.ireadabc.com/91e8ca03d1df89e4ec2404421d4c692f.json","name":"durazno_ske.json"},"texJsonData":{"url":"https://teach.cdn.ireadabc.com/32d259b0194370625f8fe94b1ddc0a85.json","name":"durazno_tex.json"},"texPngData":{"url":"https://teach.cdn.ireadabc.com/8eef56b20e221a36fce1d672199859ff.png","name":"durazno_tex.png"},"rect":{"x":146.92,"y":83.73,"width":32.34,"height":32.34}}]} + // return {"begin_audio":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","begin_sep_time":1,"guide_audio":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","playing_audio":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","right_audio":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","wrong_audio":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","wrong_audio1":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","wrong_audio2":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","end_audio":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","bgItem":{"url":"http://staging-teach.cdn.ireadabc.com/84ec6edc20bceaaa9dbe824092b6860d.png","rect":{"x":736.95,"y":0,"width":599.09,"height":775}},"hotZoneItemArr":[{"id":"1659333645573","index":0,"audio_url":"http://staging-teach.cdn.ireadabc.com/5a1a2670845bfe76662e86d9a3a69f81.mp3","itemType":"rect","fontScale":1.61953125,"imgScale":1,"imgSizeW":0,"imgSizeH":0,"mapScale":1.61953125,"dragDot":{"x":1036.5,"y":387.5},"gIdx":"1","labelText":"1","posX":887.5,"posY":165.5,"skeJsonData":{"url":"http://staging-teach.cdn.ireadabc.com/133a1f60719ed26247e35dc022d82862.json","name":"spineboy-pro.json"},"texJsonData":{"url":"http://staging-teach.cdn.ireadabc.com/e0945b8265ea3b8053afb814c6b849d3.atlas","name":"spineboy-pro.atlas"},"texPngData":{"url":"http://staging-teach.cdn.ireadabc.com/517553f50224915148f9efc5b7556798.png","name":"spineboy-pro.png"},"animType":"spine","rect":{"x":48.05,"y":65.5,"width":205,"height":200}},{"id":"1659334098930","index":1,"audio_url":"http://staging-teach.cdn.ireadabc.com/16eb06a6beb9e4fa77c9b5d2d643ab29.mp3","itemType":"rect","fontScale":1.61953125,"imgScale":1,"imgSizeW":0,"imgSizeH":0,"mapScale":1.61953125,"dragDot":{"x":1036.5,"y":387.5},"gIdx":"0","labelText":"1","posX":1212.5,"posY":643.5,"skeJsonData":{"url":"http://staging-teach.cdn.ireadabc.com/679fed26daa464819d553de6331b3552.json","name":"alien-pro.json"},"texJsonData":{"url":"http://staging-teach.cdn.ireadabc.com/65d8214c6b5c5d0496e17adb0408276a.atlas","name":"alien-pro.atlas"},"texPngData":{"url":"http://staging-teach.cdn.ireadabc.com/a319b372899239325b90bb4ec07b4970.png","name":"alien-pro.png"},"animType":"spine","rect":{"x":375.56,"y":543.5,"width":200,"height":200}}]} // return defaultData; }, @@ -853,8 +854,9 @@ cc.Class({ if (block.gIdx == '0' || block.gIdx == '1') { const n = new cc.Node(); - n.scale = 0.25; - n.scale *= groundBg.width / ground.width; + // n.scale = 0.25; + n.scale = ground.width / groundBg.width; + n.parent = ground; n.active = false; diff --git a/library/imports/dd/ddbf4888-2678-4720-899f-a7e48a445d42.js b/library/imports/dd/ddbf4888-2678-4720-899f-a7e48a445d42.js index ef4a102..a444447 100644 --- a/library/imports/dd/ddbf4888-2678-4720-899f-a7e48a445d42.js +++ b/library/imports/dd/ddbf4888-2678-4720-899f-a7e48a445d42.js @@ -206,8 +206,6 @@ cc.Class({ console.log('[answer] thinking and playing'); // check every second var id = setInterval(function () { - console.log("aaaaaa"); - if (!_this._lastFingerPosition.dirty) { return; } @@ -227,7 +225,7 @@ cc.Class({ } else { callback('WRONG'); } - }, 300); + }, 100); _this._intervalIds.push(id); // Perform cleanup @@ -258,8 +256,17 @@ cc.Class({ var an = context.questions[context.questionIndex].node; console.log('in right ' + typeof an); an.active = true; - var dragonDisplay = an.getComponent(dragonBones.ArmatureDisplay); - dragonDisplay.playAnimation('normal', 0); + + if (an.isSpine) { + var skeleton = an.getComponent(sp.Skeleton); + skeleton.setToSetupPose(); + setTimeout(function () { + skeleton.setAnimation(0, 'normal', true); + }, 1); + } else { + var dragonDisplay = an.getComponent(dragonBones.ArmatureDisplay); + dragonDisplay.playAnimation('normal', 0); + } var ddLogoCat = _this.logoCat.getComponent(dragonBones.ArmatureDisplay); @@ -610,8 +617,6 @@ cc.Class({ this.isDebug = false; }, checkInRegion: function checkInRegion(r) { - console.log('r~~~: ', r); - if (!this._lastFingerPosition && !this._lastFingerPosition.pos) { return null; } @@ -623,6 +628,8 @@ cc.Class({ x: 0, y: 0 }; + console.log('~p: ', p); + console.log('~r: ', r); var w = p.x > r.x && p.x < r.x + r.width; var h = p.y > r.y && p.y < r.y + r.height; return w && h; @@ -645,100 +652,567 @@ cc.Class({ }, getDefaultData: function getDefaultData() { return { - "begin_audio": "http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3", - "begin_sep_time": 1, - "guide_audio": "http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3", - "playing_audio": "http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3", - "right_audio": "http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3", - "wrong_audio": "http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3", - "wrong_audio1": "http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3", - "wrong_audio2": "http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3", - "end_audio": "http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3", + "begin_audio": "https://teach.cdn.ireadabc.com/9be46c9adb540ed8a60763f1e657ccb7.mp3", + "begin_sep_time": 66, + "guide_audio": "https://teach.cdn.ireadabc.com/9523c8ed45faee686363dd157b0d7426.mp3", + "playing_audio": "https://teach.cdn.ireadabc.com/d6a953052a6f80549730cb4307c55719.mp3", + "right_audio": "https://teach.cdn.ireadabc.com/43791fc418e666df5e9ec1b7bf936409.mp3", + "wrong_audio": "https://teach.cdn.ireadabc.com/7dd85f025a132c2eef8daee38d900287.mp3", + "wrong_audio1": "https://teach.cdn.ireadabc.com/a76afb06af0799bf538e38f9f80a2261.mp3", + "wrong_audio2": "https://teach.cdn.ireadabc.com/daee88b6f2eadd78b60436eedffcae08.mp3", + "end_audio": "https://teach.cdn.ireadabc.com/9c1e87b3c184b06e14e44bb058b9804e.mp3", "bgItem": { - "url": "http://staging-teach.cdn.ireadabc.com/84ec6edc20bceaaa9dbe824092b6860d.png", + "url": "https://teach.cdn.ireadabc.com/16b6dacd8e6c1ce6da16f500a66b366b.jpg", "rect": { - "x": 736.95, + "x": 319.68, "y": 0, - "width": 599.09, - "height": 775 + "width": 257.64, + "height": 342 } }, "hotZoneItemArr": [{ - "id": "1659333645573", + "id": "1650544807877", "index": 0, - "audio_url": "http://staging-teach.cdn.ireadabc.com/5a1a2670845bfe76662e86d9a3a69f81.mp3", - "itemType": "rect", - "fontScale": 1.61953125, + "itemType": "pic", + "fontScale": 0.70078125, "imgScale": 1, "imgSizeW": 0, "imgSizeH": 0, - "mapScale": 1.61953125, + "mapScale": 0.70078125, "dragDot": { - "x": 1036.5, - "y": 387.5 + "x": 448.5, + "y": 176.65207877461702 }, "gIdx": "1", - "labelText": "1", - "posX": 887.5, - "posY": 165.5, "skeJsonData": { - "url": "http://staging-teach.cdn.ireadabc.com/133a1f60719ed26247e35dc022d82862.json", - "name": "spineboy-pro.json" + "url": "https://teach.cdn.ireadabc.com/66c7c0847c33f7f95cb0035fe14c4405.json", + "name": "monkey_ske.json" }, "texJsonData": { - "url": "http://staging-teach.cdn.ireadabc.com/e0945b8265ea3b8053afb814c6b849d3.atlas", - "name": "spineboy-pro.atlas" + "url": "https://teach.cdn.ireadabc.com/98a8272cd2d97047b090ff10e948b978.json", + "name": "monkey_tex.json" }, "texPngData": { - "url": "http://staging-teach.cdn.ireadabc.com/517553f50224915148f9efc5b7556798.png", - "name": "spineboy-pro.png" + "url": "https://teach.cdn.ireadabc.com/c35ced408ad68a52c4ec5375373d3627.png", + "name": "monkey_tex.png" }, - "animType": "spine", "rect": { - "x": 48.05, - "y": 65.5, - "width": 205, - "height": 200 + "x": 128.83, + "y": 171, + "width": 0, + "height": 0 } }, { - "id": "1659334098930", + "id": "1650546079000", "index": 1, - "audio_url": "http://staging-teach.cdn.ireadabc.com/16eb06a6beb9e4fa77c9b5d2d643ab29.mp3", + "audio_url": "https://teach.cdn.ireadabc.com/f9edc84a669688c5abddd55e2aab015d.mp3", "itemType": "rect", - "fontScale": 1.61953125, + "fontScale": 0.70078125, "imgScale": 1, "imgSizeW": 0, "imgSizeH": 0, - "mapScale": 1.61953125, + "mapScale": 0.70078125, "dragDot": { - "x": 1036.5, - "y": 387.5 + "x": 448.5, + "y": 170.54984583761566 }, "gIdx": "0", - "labelText": "1", - "posX": 1212.5, - "posY": 643.5, + "labelText": "21.3", + "posX": 692.4127500193598, + "posY": 218.14695959185556, "skeJsonData": { - "url": "http://staging-teach.cdn.ireadabc.com/679fed26daa464819d553de6331b3552.json", - "name": "alien-pro.json" + "url": "https://teach.cdn.ireadabc.com/e3c67a25dd3bb34fe113e126e6e1cc81.json", + "name": "ox_ske.json" }, "texJsonData": { - "url": "http://staging-teach.cdn.ireadabc.com/65d8214c6b5c5d0496e17adb0408276a.atlas", - "name": "alien-pro.atlas" + "url": "https://teach.cdn.ireadabc.com/81d487bf31d3a4d0f25f44c184ba9233.json", + "name": "ox_tex.json" }, "texPngData": { - "url": "http://staging-teach.cdn.ireadabc.com/a319b372899239325b90bb4ec07b4970.png", - "name": "alien-pro.png" + "url": "https://teach.cdn.ireadabc.com/e199392b52a735f6e37a6815ec3bb10e.png", + "name": "ox_tex.png" }, - "animType": "spine", "rect": { - "x": 375.56, - "y": 543.5, - "width": 200, - "height": 200 + "x": 159.34, + "y": 138.66, + "width": 38.83, + "height": 38.83 + } + }, { + "id": "1650546232189", + "index": 2, + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "1", + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/0a3ea93c62ff4087859ed587020c53b5.json", + "name": "car_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/6000e4fbbb95f545afa5456c64d8c7d1.json", + "name": "car_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/75e9972c15d2a67deedf60d448fd4e69.png", + "name": "car_tex.png" + }, + "rect": { + "x": 36.4, + "y": 78.56, + "width": 184.87, + "height": 184.87 + } + }, { + "id": "1650546321127", + "index": 3, + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "1", + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/d4c1e1abcf3d8f5415747fd2599b8a8c.json", + "name": "Chair_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/1d7254eb7fa3008e8178347bb944cdcb.json", + "name": "Chair_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/48e85e8ff384eed72dfe865fc981e18c.png", + "name": "Chair_tex.png" + }, + "rect": { + "x": 36.4, + "y": 78.56, + "width": 184.87, + "height": 184.87 + } + }, { + "id": "1650546335240", + "index": 4, + "audio_url": "https://teach.cdn.ireadabc.com/6182d46bad09fccb8934217d33557204.mp3", + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "0", + "labelText": "53", + "posX": 452.5, + "posY": 129, + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/b462d80c21aa75995dd99f0f43ccf1e6.json", + "name": "quilt_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/866c9e2987870947fc63bce108ef157a.json", + "name": "quilt_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/d952c37f40c3cf07e024edfd4416423e.png", + "name": "quilt_tex.png" + }, + "rect": { + "x": 71.99, + "y": 100.75, + "width": 50.83, + "height": 36.97 + } + }, { + "id": "1650546644333", + "index": 5, + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "1", + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/6b8a1a7b0fd23686ea60465279cd4da0.json", + "name": "robot_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/31a74ed95fe48adab00702675811c3a8.json", + "name": "robot_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/e57052537d89356b0a79d8cb77980219.png", + "name": "robot_tex.png" + }, + "rect": { + "x": 36.4, + "y": 78.56, + "width": 184.87, + "height": 184.87 + } + }, { + "id": "1650546658697", + "index": 6, + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "1", + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/bf3616060460439eeb3fd5227370e15a.json", + "name": "panda_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/2dafeb25c973c910035ff7ed1a6a6334.json", + "name": "panda_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/75d90b05345fa470285ac488cb205cfd.png", + "name": "panda_tex.png" + }, + "rect": { + "x": 36.4, + "y": 78.56, + "width": 184.87, + "height": 184.87 + } + }, { + "id": "1650546672448", + "index": 7, + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "1", + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/5feff811b0117dd8e67973072e60d310.json", + "name": "queen_1_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/bb5856b92b09c5fe7a1da00bb68134ca.json", + "name": "queen_1_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/f4e5a138b086ef3dcfa57432543b66e9.png", + "name": "queen_1_tex.png" + }, + "animType": "dragonBone", + "rect": { + "x": 36.4, + "y": 78.56, + "width": 184.87, + "height": 184.87 + } + }, { + "id": "1650546687069", + "index": 8, + "audio_url": "https://teach.cdn.ireadabc.com/301858df7b07e661426a006acb26059c.mp3", + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "0", + "labelText": "42.5", + "posX": 512.3883524629834, + "posY": 259.83617125849, + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/f3a8efcd1850ee8a6cee89a18e86dc4a.json", + "name": "milk_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/73b05f19d419bd3ac17c2b92dab88423.json", + "name": "milk_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/e38375da46f85a23202d5cbc812d62e4.png", + "name": "milk_tex.png" + }, + "rect": { + "x": 37.72, + "y": 168.1, + "width": 21.17, + "height": 40.34 + } + }, { + "id": "1650547060490", + "index": 9, + "audio_url": "https://teach.cdn.ireadabc.com/05e5b29aeffa4ef94bcc5b23167aec90.mp3", + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "0", + "labelText": "47.7", + "posX": 483.22135734006736, + "posY": 245.38039407076505, + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/99a6e6d9361eca7e51ed34ca2e0fd017.json", + "name": "bird_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/6a379ddbe6df1806368c43c8ee82332d.json", + "name": "bird_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/cf04c63104d89511902578944061f980.png", + "name": "bird_tex.png" + }, + "rect": { + "x": 17.91, + "y": 140.83, + "width": 18.52, + "height": 73.95 + } + }, { + "id": "1650547373869", + "index": 10, + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "1", + "labelText": "60", + "posX": 420.5, + "posY": 295, + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/7ebc28f3f339b16ca48d20f2a3eb44c1.json", + "name": "alligator_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/b04e8206fd217bd22dcdac1008393317.json", + "name": "alligator_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/b3990d94612bd3d6e25cf200f85e4334.png", + "name": "alligator_tex.png" + }, + "rect": { + "x": 16.06, + "y": 229.24, + "width": 103.52, + "height": 86.89 + } + }, { + "id": "1650547482398", + "index": 11, + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "1", + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/a19f2ed7c297c70c639e54e969d64593.json", + "name": "rabbit_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/4b4f8189cf79fadd7e6533ad84db96be.json", + "name": "rabbit_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/8f953c861eac94e4e22a8e4ec3eb56b5.png", + "name": "rabbit_tex.png" + }, + "rect": { + "x": 36.4, + "y": 78.56, + "width": 184.87, + "height": 184.87 + } + }, { + "id": "1650547496232", + "index": 12, + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "1", + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/89e0fc6085c294866142803b4ff267ba.json", + "name": "King_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/d6cfd2d9cd2cd9aff09ab7f03e287421.json", + "name": "King_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/8c02c3561a2eea0423cb1102200e76f9.png", + "name": "King_tex.png" + }, + "rect": { + "x": 36.4, + "y": 78.56, + "width": 184.87, + "height": 184.87 + } + }, { + "id": "1650547510648", + "index": 13, + "audio_url": "https://teach.cdn.ireadabc.com/717ee9713b18d32d38ee089c0abc85ea.mp3", + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "0", + "labelText": "10.2", + "posX": 641.6680134951944, + "posY": 288.93672702541255, + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/3b7113ebdedcae54be6d0b9633875b88.json", + "name": "net_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/fc810762f1f2025585e722e43e94137b.json", + "name": "net_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/5c90820da4f559280fee4579e8db2dbc.png", + "name": "net_tex.png" + }, + "rect": { + "x": 123.03, + "y": 183.02, + "width": 37.9, + "height": 52.68 + } + }, { + "id": "1650547555018", + "index": 14, + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "1", + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/0a5c8df5a23aca7a7540b87340c7608f.json", + "name": "ostrich_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/2478573c91d1a83fa038e7f6a9db8a85.json", + "name": "ostrich_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/4619ace67e5770e1fd7fc3ff76e7263e.png", + "name": "ostrich_tex.png" + }, + "rect": { + "x": 36.4, + "y": 78.56, + "width": 184.87, + "height": 184.87 + } + }, { + "id": "1650547573305", + "index": 15, + "audio_url": "https://teach.cdn.ireadabc.com/b7bc161c3a3ee143a53058691abf4fa9.mp3", + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "0", + "labelText": "15.9", + "posX": 670.8119839772754, + "posY": 137.87940870201697, + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/91e8ca03d1df89e4ec2404421d4c692f.json", + "name": "durazno_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/32d259b0194370625f8fe94b1ddc0a85.json", + "name": "durazno_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/8eef56b20e221a36fce1d672199859ff.png", + "name": "durazno_tex.png" + }, + "rect": { + "x": 146.92, + "y": 83.73, + "width": 32.34, + "height": 32.34 } }] - }; // return defaultData; + }; // return {"begin_audio":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","begin_sep_time":1,"guide_audio":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","playing_audio":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","right_audio":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","wrong_audio":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","wrong_audio1":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","wrong_audio2":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","end_audio":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","bgItem":{"url":"http://staging-teach.cdn.ireadabc.com/84ec6edc20bceaaa9dbe824092b6860d.png","rect":{"x":736.95,"y":0,"width":599.09,"height":775}},"hotZoneItemArr":[{"id":"1659333645573","index":0,"audio_url":"http://staging-teach.cdn.ireadabc.com/5a1a2670845bfe76662e86d9a3a69f81.mp3","itemType":"rect","fontScale":1.61953125,"imgScale":1,"imgSizeW":0,"imgSizeH":0,"mapScale":1.61953125,"dragDot":{"x":1036.5,"y":387.5},"gIdx":"1","labelText":"1","posX":887.5,"posY":165.5,"skeJsonData":{"url":"http://staging-teach.cdn.ireadabc.com/133a1f60719ed26247e35dc022d82862.json","name":"spineboy-pro.json"},"texJsonData":{"url":"http://staging-teach.cdn.ireadabc.com/e0945b8265ea3b8053afb814c6b849d3.atlas","name":"spineboy-pro.atlas"},"texPngData":{"url":"http://staging-teach.cdn.ireadabc.com/517553f50224915148f9efc5b7556798.png","name":"spineboy-pro.png"},"animType":"spine","rect":{"x":48.05,"y":65.5,"width":205,"height":200}},{"id":"1659334098930","index":1,"audio_url":"http://staging-teach.cdn.ireadabc.com/16eb06a6beb9e4fa77c9b5d2d643ab29.mp3","itemType":"rect","fontScale":1.61953125,"imgScale":1,"imgSizeW":0,"imgSizeH":0,"mapScale":1.61953125,"dragDot":{"x":1036.5,"y":387.5},"gIdx":"0","labelText":"1","posX":1212.5,"posY":643.5,"skeJsonData":{"url":"http://staging-teach.cdn.ireadabc.com/679fed26daa464819d553de6331b3552.json","name":"alien-pro.json"},"texJsonData":{"url":"http://staging-teach.cdn.ireadabc.com/65d8214c6b5c5d0496e17adb0408276a.atlas","name":"alien-pro.atlas"},"texPngData":{"url":"http://staging-teach.cdn.ireadabc.com/a319b372899239325b90bb4ec07b4970.png","name":"alien-pro.png"},"animType":"spine","rect":{"x":375.56,"y":543.5,"width":200,"height":200}}]} + // return defaultData; }, preloadItem: function preloadItem() { this.addPreloadImage(); @@ -986,8 +1460,9 @@ cc.Class({ if (_block.gIdx == '0' || _block.gIdx == '1') { (function () { - var n = new cc.Node(); - n.scale = 0.25; + var n = new cc.Node(); // n.scale = 0.25; + + n.scale = ground.width / groundBg.width; n.parent = ground; n.active = false; @@ -1005,8 +1480,7 @@ cc.Class({ n.height = height; n.active = true; // db.playAnimation('null', 0); // skeleton.setToSetupPose(); - - skeleton.setAnimation(0, 'enlarge', true); + // skeleton.setAnimation(0, 'enlarge', true); _this4._allAnimationNodes.push(n); @@ -1138,27 +1612,54 @@ cc.Class({ // this.initIcon(); // }, addRectNodeListener: function addRectNodeListener(data) { - var bg = cc.find("Canvas/frame-border/ground/bg"); + var _this5 = this; + + var bg = cc.find("Canvas/frame-border/ground/bg").parent; var rate = bg.scale * bg.width / this.data.bgItem.rect.width; var rectNode = new cc.Node(); rectNode.name = 'rect' + data.index; - bg.addChild(rectNode); + bg.addChild(rectNode, 20); var ctx = rectNode.addComponent(cc.Graphics); // 红色矩形 ctx.lineWidth = 4; ctx.strokeColor = cc.Color.BLACK; ctx.fillColor = cc.Color.WHITE.setA(100); var scale = rate / bg.scaleY; + console.log('scale~ : ', scale); rectNode.width = data.rect.width * scale; rectNode.height = data.rect.height * scale; - rectNode.x = -bg.width / 2 + data.rect.x * scale; - rectNode.y = bg.height / 2 - data.rect.height * scale - data.rect.y * scale; - rectNode.anchorX = rectNode.anchorY = 0; // if (pageData.bgItem.isShowDebugLine) { + rectNode.x = -bg.width / 2 + data.rect.x * scale + bg.x; + rectNode.y = bg.height / 2 - data.rect.height * scale - data.rect.y * scale + bg.y; + rectNode.anchorX = rectNode.anchorY = 0; + console.log('data: ', data); + console.log('rectNode: ', rectNode); // if (pageData.bgItem.isShowDebugLine) { - ctx.rect(0, 0, rectNode.width, rectNode.height); // } + ctx.rect(0, 0, rectNode.width, rectNode.height); // ctx.fillRect(0, 0, 200, 200); + // } ctx.stroke(); ctx.fill(); + rectNode.addComponent(cc.Button); + rectNode.on("click", function () { + console.log(" in rectNode click"); + + var _x = rectNode.x / bg.width; + + var _y = rectNode.y / bg.height; + + var _w = rectNode.width / bg.width; + + var _h = rectNode.height / bg.height; + + var pos = { + x: _x + _w / 2 + 0.5, + y: -(_y + _h / 2 - 0.5) + }; + _this5._lastFingerPosition = { + pos: pos, + dirty: true + }; + }); }, initBg: function initBg() { var bgNode = cc.find('Canvas/bg'); diff --git a/library/imports/dd/ddbf4888-2678-4720-899f-a7e48a445d42.js.map b/library/imports/dd/ddbf4888-2678-4720-899f-a7e48a445d42.js.map index af19a8f..3b977a2 100644 --- a/library/imports/dd/ddbf4888-2678-4720-899f-a7e48a445d42.js.map +++ b/library/imports/dd/ddbf4888-2678-4720-899f-a7e48a445d42.js.map @@ -1 +1 @@ -{"version":3,"sources":["assets/OP15/scene/OP15.js"],"names":["pure","actions","send","raise","sendParent","cc","Class","Component","properties","rightAudio","type","AudioClip","wrongAudio","logoCat","Node","playAni","idx","name","options","times","cb","callback","node","_figurePointRectArray","dragonDisplay","getComponent","dragonBones","ArmatureDisplay","state","playAnimation","onLoad","_timeoutIds","_intervalIds","initSceneData","initSize","window","ccc","_imageResList","_audioResList","_animaResList","_lastFingerPosition","_hintsNodeList","_allAnimationNodes","pos","dirty","_designSize","_frameSize","_mapScaleMin","_mapScaleMax","_cocosScale","screen_size","view","getFrameSize","width","height","design_size","Canvas","instance","designResolution","f","fitHeight","fitWidth","frameSize","getDesignResolutionSize","sx","winSize","sy","Math","min","max","createStateMachine","check","target","cond","ctx","evt","console","log","questionIndex","questionsCount","QuestionState","id","initial","states","hint","invoke","src","event","questionPlayTimes","Promise","resolve","reject","questions","audio_url","onDone","onError","answer","after","context","onReceive","setInterval","region","result","checkInRegion","rect","push","clearInterval","on","RIGHT","WRONG","right","an","active","ddLogoCat","once","EventObject","COMPLETE","wrong","maxQuestionTryTimes","wrongEffect","includes","data","isSpine","skeleton","sp","Skeleton","setToSetupPose","setTimeout","setAnimation","QuestionsArrayStatus","play","next","CHECK","length","begin","courseware","openOsmoFingerRead","isOpenedOsmoFingerRead","begin_audio","guide","guide_audio","playing","entry","assetManager","loadRemote","playing_audio","err","audioClip","audioEngine","playMusic","forEach","block","exit","stopMusic","NEXT","end","closeOsmoFingerRead","end_audio","i","t","k","_armatureKey","addEventListener","begin_sep_time","gameMachine","gameMachineService","onTransition","start","getData","bind","getDefaultData","JSON","parse","stringify","preloadItem","air","osmoFingerReadCallback","resultObj","finger_pos_in_page","p","x","y","debugPointer","isDebug","r","w","h","func","middleLayer","find","middleLayerComponent","addPreloadImage","addPreloadAudio","addPreloadAnima","preload","url","bgItem","hotZoneItemArr","q","gIdx","texPngData","pic_url","prepareAudioClip","key","wrong_audio","right_audio","wrong_audio1","wrong_audio2","boxDebugger","POINTER_NODE","parent","addComponent","Graphics","grap","clear","ground","baseW","baseH","px","py","pn","fillColor","color","circle","fill","stroke","debugGraphics","canvas","bgW","bgH","scaleX","scaleY","added","area","dn","lblNode","lbl","Label","string","skeJsonData","substring","g","b","rx","ry","rw","rh","fillRect","preloadArr","concat","loadAny","item","groundBg","baseRect","sf","gs","Sprite","spriteFrame","dbCount","finishDbCount","s1","imgSizeW","imgSizeH","spr","scale","n","animType","tex","atlas","texJsonData","ske","then","loadEnd","db","rectInfo","labelText","isNaN","debug","setDisplayStats","hideAirClassLoading","initData","initBg","_cantouch","addRectNodeListener","bg","rate","rectNode","index","addChild","lineWidth","strokeColor","Color","BLACK","WHITE","setA","anchorX","anchorY","bgNode","onDestroy","clearTimeout","stopChild","stop"],"mappings":";;;;;;AAAA;;AACA;;AACA;;;;;;;;;;IACQA,OAAoCC,gBAApCD;IAAOE,OAA6BD,gBAA7BC;IAAMC,QAAuBF,gBAAvBE;IAAOC,aAAgBH,gBAAhBG;AAG5BC,EAAE,CAACC,KAAH,CAAS;AAER,aAASD,EAAE,CAACE,SAFJ;AAIRC,EAAAA,UAAU,EAAE;AACX;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACEC,IAAAA,UAAU,EAAE;AACX,iBAAS,IADE;AAEXC,MAAAA,IAAI,EAAEL,EAAE,CAACM;AAFE,KArDD;AAyDXC,IAAAA,UAAU,EAAE;AACX,iBAAS,IADE;AAEXF,MAAAA,IAAI,EAAEL,EAAE,CAACM;AAFE,KAzDD;AA6DXE,IAAAA,OAAO,EAAE;AACR,iBAAS,IADD;AAERH,MAAAA,IAAI,EAAEL,EAAE,CAACS;AAFD;AA7DE,GAJJ;AAwERC,EAAAA,OAxEQ,mBAwEAC,GAxEA,EAwEKC,IAxEL,EAwEWC,OAxEX,EAwEoB;AAC3B,QAAMC,KAAK,GAAID,OAAO,IAAIA,OAAO,CAACC,KAApB,IAA8B,CAA5C;AACA,QAAMC,EAAE,GAAIF,OAAO,IAAIA,OAAO,CAACG,QAApB,IAAiC,IAA5C,CAF2B,CAG3B;;AACA,QAAMC,IAAI,GAAG,KAAKC,qBAAL,CAA2BP,GAA3B,EAAgCM,IAA7C;AACA,QAAIE,aAAa,GAAGF,IAAI,CAACG,YAAL,CAAkBC,WAAW,CAACC,eAA9B,CAApB;AAEA,QAAMC,KAAK,GAAGJ,aAAa,CAACK,aAAd,CAA4BZ,IAA5B,EAAkCE,KAAlC,CAAd,CAP2B,CAQ3B;AACA;AACA;AACA;AACA;AACA;;AACA,WAAOS,KAAP;AACA,GAvFO;AAwFR;AACAE,EAAAA,MAzFQ,oBAyFC;AACR,SAAKC,WAAL,GAAmB,EAAnB;AACA,SAAKC,YAAL,GAAoB,EAApB;AACA,SAAKC,aAAL;AACA,SAAKC,QAAL;AACAC,IAAAA,MAAM,CAACC,GAAP,GAAa,IAAb;AACA,GA/FO;AAiGRC,EAAAA,aAAa,EAAE,IAjGP;AAkGRC,EAAAA,aAAa,EAAE,IAlGP;AAmGRC,EAAAA,aAAa,EAAE,IAnGP;AAqGRC,EAAAA,mBAAmB,EAAE,IArGb;AAuGRC,EAAAA,cAAc,EAAG,IAvGT;AAwGRlB,EAAAA,qBAAqB,EAAE,IAxGf;AA0GRmB,EAAAA,kBAAkB,EAAE,IA1GZ;AA4GRT,EAAAA,aA5GQ,2BA4GQ;AACf,SAAKI,aAAL,GAAqB,EAArB;AACA,SAAKC,aAAL,GAAqB,EAArB;AACA,SAAKC,aAAL,GAAqB,EAArB;AAEA,SAAKG,kBAAL,GAA0B,EAA1B;AACA,SAAKD,cAAL,GAAsB,EAAtB;AACA,SAAKD,mBAAL,GAA0B;AACzBG,MAAAA,GAAG,EAAE,IADoB;AAEzBC,MAAAA,KAAK,EAAE;AAFkB,KAA1B;AAIA,SAAKrB,qBAAL,GAA6B,EAA7B;AACA,GAxHO;AA0HRsB,EAAAA,WAAW,EAAE,IA1HL;AA0HY;AACpBC,EAAAA,UAAU,EAAE,IA3HJ;AA2HW;AACnBC,EAAAA,YAAY,EAAE,IA5HN;AA4Ha;AACrBC,EAAAA,YAAY,EAAE,IA7HN;AA6Ha;AACrBC,EAAAA,WAAW,EAAE,IA9HL;AA8HY;AAEpBf,EAAAA,QAhIQ,sBAgIG;AACV;AACA,QAAIgB,WAAW,GAAG7C,EAAE,CAAC8C,IAAH,CAAQC,YAAR,GAAuBC,KAAvB,GAA+BhD,EAAE,CAAC8C,IAAH,CAAQC,YAAR,GAAuBE,MAAxE;AACA,QAAIC,WAAW,GAAGlD,EAAE,CAACmD,MAAH,CAAUC,QAAV,CAAmBC,gBAAnB,CAAoCL,KAApC,GAA4ChD,EAAE,CAACmD,MAAH,CAAUC,QAAV,CAAmBC,gBAAnB,CAAoCJ,MAAlG;AACA,QAAIK,CAAC,GAAGT,WAAW,IAAIK,WAAvB;AACAlD,IAAAA,EAAE,CAACmD,MAAH,CAAUC,QAAV,CAAmBG,SAAnB,GAA+BD,CAA/B;AACAtD,IAAAA,EAAE,CAACmD,MAAH,CAAUC,QAAV,CAAmBI,QAAnB,GAA8B,CAACF,CAA/B;AAEA,QAAMG,SAAS,GAAGzD,EAAE,CAAC8C,IAAH,CAAQC,YAAR,EAAlB;AACA,SAAKN,UAAL,GAAkBgB,SAAlB;AAEA,SAAKjB,WAAL,GAAmBxC,EAAE,CAAC8C,IAAH,CAAQY,uBAAR,EAAnB;AAEA,QAAIC,EAAE,GAAG3D,EAAE,CAAC4D,OAAH,CAAWZ,KAAX,GAAmBS,SAAS,CAACT,KAAtC;AACA,QAAIa,EAAE,GAAG7D,EAAE,CAAC4D,OAAH,CAAWX,MAAX,GAAoBQ,SAAS,CAACR,MAAvC;AACA,SAAKL,WAAL,GAAmBkB,IAAI,CAACC,GAAL,CAASJ,EAAT,EAAaE,EAAb,CAAnB;AAEAF,IAAAA,EAAE,GAAGF,SAAS,CAACT,KAAV,GAAkB,KAAKR,WAAL,CAAiBQ,KAAxC;AACAa,IAAAA,EAAE,GAAGJ,SAAS,CAACR,MAAV,GAAmB,KAAKT,WAAL,CAAiBS,MAAzC;AACA,SAAKP,YAAL,GAAoBoB,IAAI,CAACC,GAAL,CAASJ,EAAT,EAAaE,EAAb,IAAmB,KAAKjB,WAA5C;AACA,SAAKD,YAAL,GAAoBmB,IAAI,CAACE,GAAL,CAASL,EAAT,EAAaE,EAAb,IAAmB,KAAKjB,WAA5C;AACA,GArJO;AAsJRqB,EAAAA,kBAtJQ,gCAsJY;AAAA;;AACnB,QAAMC,KAAK,GAAI,CACV;AAAEC,MAAAA,MAAM,EAAE,WAAV;AAAuBC,MAAAA,IAAI,EAAE,cAACC,GAAD,EAAMC,GAAN,EAAc;AAC1CC,QAAAA,OAAO,CAACC,GAAR,CAAY,4BAAZ,EAA0CH,GAAG,CAACI,aAAJ,IAAqBJ,GAAG,CAACK,cAAJ,GAAqB,CAApF;AACA,eAAOL,GAAG,CAACI,aAAJ,IAAqBJ,GAAG,CAACK,cAAJ,GAAoB,CAAhD;AAEA;AAJD,KADU,EAMJ;AAAEP,MAAAA,MAAM,EAAE;AAAV,KANI,CAMe;AANf,KAAf;AAQA,QAAMQ,aAAa,GAAG;AACrBC,MAAAA,EAAE,EAAE,UADiB;AAErBC,MAAAA,OAAO,EAAE,MAFY;AAGrBC,MAAAA,MAAM,EAAE;AACPC,QAAAA,IAAI,EAAE;AACLC,UAAAA,MAAM,EAAE;AACPC,YAAAA,GAAG,EAAE,aAACZ,GAAD,EAAMa,KAAN,EAAgB;AACpBX,cAAAA,OAAO,CAACC,GAAR,2BAAoCH,GAAG,CAACI,aAAxC,UAA0DJ,GAAG,CAACc,iBAA9D;AACAd,cAAAA,GAAG,CAACc,iBAAJ,IAAyB,CAAzB;AACA,qBAAO,IAAIC,OAAJ,CAAY,UAACC,OAAD,EAASC,MAAT,EAAoB;AAEtC,0CAAejB,GAAG,CAACkB,SAAJ,CAAclB,GAAG,CAACI,aAAlB,EAAiCe,SAAhD,EAA2D,YAAM;AAChEjB,kBAAAA,OAAO,CAACC,GAAR,CAAY,aAAZ;AACAa,kBAAAA,OAAO;AACP,iBAHD;AAIA,eANM,CAAP;AAOA,aAXM;AAYPI,YAAAA,MAAM,EAAE,QAZD;AAaPC,YAAAA,OAAO,EAAE;AAbF;AADH,SADC;AAkBPC,QAAAA,MAAM,EAAE;AACPC,UAAAA,KAAK,EAAE;AACN,kBAAM,CACC;AACLzB,cAAAA,MAAM,EAAE;AADH,aADD,CAIH;AAJG;AADA,WADA;AAWPa,UAAAA,MAAM,EAAE;AAEPC,YAAAA,GAAG,EAAE,aAACY,OAAD,EAAUX,KAAV;AAAA,qBAAoB,UAAClE,QAAD,EAAW8E,SAAX,EAAyB;AAEjDvB,gBAAAA,OAAO,CAACC,GAAR,CAAY,+BAAZ,EAFiD,CAGjD;;AACA,oBAAMI,EAAE,GAAGmB,WAAW,CAAC,YAAM;AAC5BxB,kBAAAA,OAAO,CAACC,GAAR,CAAY,QAAZ;;AACA,sBAAI,CAAC,KAAI,CAACrC,mBAAL,CAAyBI,KAA9B,EAAqC;AACpC;AACA;;AACD,sBAAMyD,MAAM,GAAGH,OAAO,CAACN,SAAR,CAAkBM,OAAO,CAACpB,aAA1B,CAAf;;AACA,sBAAMwB,MAAM,GAAG,KAAI,CAACC,aAAL,CAAmBF,MAAM,CAACG,IAA1B,CAAf;;AACA,sBAAIF,MAAM,KAAK,IAAf,EAAqB;AACpB;AACA;;AACD1B,kBAAAA,OAAO,CAACC,GAAR,CAAY,8BAA8ByB,MAA1C;;AACA,sBAAIA,MAAJ,EAAY;AACXjF,oBAAAA,QAAQ,CAAC,OAAD,CAAR;AACA,mBAFD,MAEO;AACNA,oBAAAA,QAAQ,CAAC,OAAD,CAAR;AACA;AACD,iBAhBqB,EAgBnB,GAhBmB,CAAtB;;AAiBA,gBAAA,KAAI,CAACW,YAAL,CAAkByE,IAAlB,CAAuBxB,EAAvB,EArBiD,CAuBjD;;;AACA,uBAAO;AAAA,yBAAMyB,aAAa,CAACzB,EAAD,CAAnB;AAAA,iBAAP;AACA,eAzBI;AAAA;AAFE,WAXD;AAyCP0B,UAAAA,EAAE,EAAE;AACHC,YAAAA,KAAK,EAAE;AACNpC,cAAAA,MAAM,EAAE;AADF,aADJ;AAIHqC,YAAAA,KAAK,EAAE;AACNrC,cAAAA,MAAM,EAAE;AADF;AAJJ;AAzCG,SAlBD;AAqEPsC,QAAAA,KAAK,EAAE;AACNzB,UAAAA,MAAM,EAAE;AACPC,YAAAA,GAAG,EAAE,aAACY,OAAD,EAAUX,KAAV,EAAoB;AACxB,cAAA,KAAI,CAAC/C,mBAAL,CAAyBG,GAAzB,GAA+B,IAA/B;AACA,cAAA,KAAI,CAACH,mBAAL,CAAyBI,KAAzB,GAAiC,KAAjC;AACA,qBAAO,IAAI6C,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;AACvCf,gBAAAA,OAAO,CAACC,GAAR,CAAY,cAAZ,EADuC,CAEvC;;AACA,oBAAMkC,EAAE,GAAGb,OAAO,CAACN,SAAR,CAAkBM,OAAO,CAACpB,aAA1B,EAAyCxD,IAApD;AACAsD,gBAAAA,OAAO,CAACC,GAAR,CAAY,cAAe,OAAOkC,EAAlC;AACAA,gBAAAA,EAAE,CAACC,MAAH,GAAY,IAAZ;AACA,oBAAMxF,aAAa,GAAGuF,EAAE,CAACtF,YAAH,CAAgBC,WAAW,CAACC,eAA5B,CAAtB;AACAH,gBAAAA,aAAa,CAACK,aAAd,CAA4B,QAA5B,EAAsC,CAAtC;;AACA,oBAAMoF,SAAS,GAAG,KAAI,CAACpG,OAAL,CAAaY,YAAb,CAA0BC,WAAW,CAACC,eAAtC,CAAlB;;AACAsF,gBAAAA,SAAS,CAACpF,aAAV,CAAwB,OAAxB,EAAiC,CAAjC;AACAoF,gBAAAA,SAAS,CAACC,IAAV,CAAexF,WAAW,CAACyF,WAAZ,CAAwBC,QAAvC,EAAiD,YAAW;AAC3D,uBAAKvG,OAAL,CAAaY,YAAb,CAA0BC,WAAW,CAACC,eAAtC,EAAuDE,aAAvD,CAAqE,QAArE,EAA+E,CAA/E;AACA,iBAFD,EAEG,KAFH;AAIA,0CAAe,KAAI,CAACpB,UAApB,EAAgC,YAAM;AACrCiF,kBAAAA,OAAO;AACP,iBAFD;AAGA,eAjBM,CAAP;AAkBA,aAtBM;AAuBPI,YAAAA,MAAM,EAAE;AACPtB,cAAAA,MAAM,EAAE,sBADD;AAEPvE,cAAAA,OAAO,EAAEE,KAAK,CAAC,OAAD;AAFP,aAvBD;AA2BP4F,YAAAA,OAAO,EAAE;AACRvB,cAAAA,MAAM,EAAE,sBADA;AAERvE,cAAAA,OAAO,EAAEE,KAAK,CAAC,OAAD;AAFN;AA3BF;AADF,SArEA;AAuGPkH,QAAAA,KAAK,EAAC;AACLhC,UAAAA,MAAM,EAAE;AACPC,YAAAA,GAAG,EAAE,aAACY,OAAD,EAAUX,KAAV,EAAoB;AACxB,cAAA,KAAI,CAAC/C,mBAAL,CAAyBG,GAAzB,GAA+B,IAA/B;AACA,cAAA,KAAI,CAACH,mBAAL,CAAyBI,KAAzB,GAAiC,KAAjC;AACA,qBAAO,IAAI6C,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;AACvCf,gBAAAA,OAAO,CAACC,GAAR,CAAY,cAAZ,EAA4BqB,OAAO,CAACpB,aAApC,EAAmDoB,OAAO,CAACV,iBAA3D,EAA+EU,OAAO,CAACoB,mBAAvF;;AACA,oBAAML,SAAS,GAAG,KAAI,CAACpG,OAAL,CAAaY,YAAb,CAA0BC,WAAW,CAACC,eAAtC,CAAlB;;AACAsF,gBAAAA,SAAS,CAACpF,aAAV,CAAwB,OAAxB,EAAiC,CAAjC;AACAoF,gBAAAA,SAAS,CAACC,IAAV,CAAexF,WAAW,CAACyF,WAAZ,CAAwBC,QAAvC,EAAiD,YAAW;AAC3D,uBAAKvG,OAAL,CAAaY,YAAb,CAA0BC,WAAW,CAACC,eAAtC,EAAuDE,aAAvD,CAAqE,QAArE,EAA+E,CAA/E;AACA,iBAFD,EAEG,KAFH;AAGA,oBAAI0F,WAAW,GAAG,KAAI,CAAC3G,UAAvB,CAPuC,CAQvC;;AACA,oBAAI,CAAC,CAAD,EAAI,CAAJ,EAAO4G,QAAP,CAAgBtB,OAAO,CAACpB,aAAxB,CAAJ,EAA4C;AAC3CyC,kBAAAA,WAAW,GAAG,KAAI,CAACE,IAAL,iBAAwBvB,OAAO,CAACV,iBAAhC,CAAd;AACA,iBAFD,MAEO;AACN;AACA,sBAAIU,OAAO,CAACV,iBAAR,IAA6B,CAAjC,EAAoC;AACnC+B,oBAAAA,WAAW,GAAG,KAAI,CAACE,IAAL,iBAAwBvB,OAAO,CAACV,iBAAhC,CAAd;AACA;AACD;;AAGD,oBAAIU,OAAO,CAACV,iBAAR,IAA6BU,OAAO,CAACoB,mBAAzC,EAA8D;AAC7D,sBAAMP,EAAE,GAAGb,OAAO,CAACN,SAAR,CAAkBM,OAAO,CAACpB,aAA1B,EAAyCxD,IAApD;AACAyF,kBAAAA,EAAE,CAACC,MAAH,GAAY,IAAZ;;AAEA,sBAAID,EAAE,CAACW,OAAP,EAAgB;AAEf,wBAAMC,QAAQ,GAAGZ,EAAE,CAACtF,YAAH,CAAgBmG,EAAE,CAACC,QAAnB,CAAjB;AACAF,oBAAAA,QAAQ,CAACG,cAAT;AACAC,oBAAAA,UAAU,CAAC,YAAM;AAChBJ,sBAAAA,QAAQ,CAACK,YAAT,CAAsB,CAAtB,EAAyB,QAAzB,EAAmC,IAAnC;AACA,qBAFS,EAEP,CAFO,CAAV;AAIA,mBARD,MAQO;AACN,wBAAMxG,aAAa,GAAGuF,EAAE,CAACtF,YAAH,CAAgBC,WAAW,CAACC,eAA5B,CAAtB;AACAH,oBAAAA,aAAa,CAACK,aAAd,CAA4B,QAA5B,EAAsC,CAAtC;AACA+C,oBAAAA,OAAO,CAACC,GAAR,CAAY,gBAAZ,EAA8BkC,EAAE,CAACC,MAAjC;AACA;AAED;;AAED,0CAAeO,WAAf,EAA4B,YAAM;AACjC,sBAAIrB,OAAO,CAACV,iBAAR,IAA6BU,OAAO,CAACoB,mBAAzC,EAA8D;AAC7D;AACA;AACA;AACA;AACA;AACA3B,oBAAAA,MAAM;AACN,mBAPD,MAOO;AACND,oBAAAA,OAAO;AACP;AACD,iBAXD;AAYA,eAnDM,CAAP;AAoDA,aAxDM;AAyDPI,YAAAA,MAAM,EAAE;AACPtB,cAAAA,MAAM,EAAE,MADD,CAEP;;AAFO,aAzDD;AA6DPuB,YAAAA,OAAO,EAAE;AACRvB,cAAAA,MAAM,EAAE,sBADA;AAERvE,cAAAA,OAAO,EAAEE,KAAK,CAAC,OAAD;AAFN;AA7DF;AADH;AAvGC;AAHa,KAAtB;AAgLA,QAAM8H,oBAAoB,GAAG;AAC5BhD,MAAAA,EAAE,EAAE,gBADwB;AAE5BC,MAAAA,OAAO,EAAE,MAFmB;AAG5BC,MAAAA,MAAM,EAAE;AACP+C,QAAAA,IAAI,eACAlD,aADA,CADG;AAIPmD,QAAAA,IAAI,EAAE;AACLxB,UAAAA,EAAE,EAAE;AACHyB,YAAAA,KAAK,EAAE,CACN;AACC5D,cAAAA,MAAM,EAAE,WADT;AAECC,cAAAA,IAAI,EAAE,cAACC,GAAD,EAAMC,GAAN,EAAc;AACnBD,gBAAAA,GAAG,CAACI,aAAJ,IAAqB,CAArB;AACAJ,gBAAAA,GAAG,CAACc,iBAAJ,GAAwB,CAAxB;AACAZ,gBAAAA,OAAO,CAACC,GAAR,CAAY,WAAZ,EAA0BH,GAAG,CAACI,aAAJ,IAAqBJ,GAAG,CAACK,cAAnD;AACA,uBAAOL,GAAG,CAACI,aAAJ,IAAqBJ,GAAG,CAACK,cAAhC;AACA;AAPF,aADM,EAUN;AAACP,cAAAA,MAAM,EAAE;AAAT,aAVM;AADJ;AADC;AAJC;AAHoB,KAA7B;AA4BA,QAAM5C,KAAK,GAAG;AACbqD,MAAAA,EAAE,EAAE,MADS;AAEbC,MAAAA,OAAO,EAAE,OAFI;AAGbgB,MAAAA,OAAO,EAAE;AACRpB,QAAAA,aAAa,EAAE,CADP;AAERU,QAAAA,iBAAiB,EAAE,CAFX;AAGR8B,QAAAA,mBAAmB,EAAE,CAHb;AAIRvC,QAAAA,cAAc,EAAE,KAAKxD,qBAAL,CAA2B8G,MAJnC;AAKRzC,QAAAA,SAAS,EAAE,KAAKrE;AALR,OAHI;AAUb4D,MAAAA,MAAM,EAAE;AACPmD,QAAAA,KAAK,EAAE;AACNjD,UAAAA,MAAM,EAAE;AACPC,YAAAA,GAAG,EAAE,aAACZ,GAAD,EAAS;AACbE,cAAAA,OAAO,CAACC,GAAR,CAAY,cAAZ;;AACA,kBAAG1C,MAAM,CAACoG,UAAP,IAAqBpG,MAAM,CAACoG,UAAP,CAAkBC,kBAA1C,EAA8D;AAC7D,gBAAA,KAAI,CAACC,sBAAL,GAA8B,IAA9B;AACAtG,gBAAAA,MAAM,CAACoG,UAAP,CAAkBC,kBAAlB,CAAqC;AACpC,6BAAW,EADyB;AAEpC,6BAAW;AAFyB,iBAArC;AAIA;;AACD,kBAAIhH,aAAa,GAAG,KAAI,CAACX,OAAL,CAAaY,YAAb,CAA0BC,WAAW,CAACC,eAAtC,CAApB;;AACA,kBAAMC,KAAK,GAAGJ,aAAa,CAACK,aAAd,CAA4B,OAA5B,EAAqC,CAArC,CAAd;AACA,qBAAO,IAAI4D,OAAJ,CAAY,UAACC,OAAD,EAASC,MAAT,EAAoB;AACtC,0CAAe,KAAI,CAAC8B,IAAL,CAAUiB,WAAzB,EAAsC,YAAM;AAC3C9D,kBAAAA,OAAO,CAACC,GAAR,CAAY,yBAAZ;AACAa,kBAAAA,OAAO;AACP,iBAHD;AAIA,eALM,CAAP;AAMA,aAlBM;AAmBPI,YAAAA,MAAM,EAAG,OAnBF;AAoBPC,YAAAA,OAAO,EAAE;AApBF;AADF,SADA;AA0BP4C,QAAAA,KAAK,EAAC;AACLtD,UAAAA,MAAM,EAAE;AACPC,YAAAA,GAAG,EAAE,aAACZ,GAAD,EAAS;AACb,qBAAO,IAAIe,OAAJ,CAAY,UAACC,OAAD,EAASC,MAAT,EAAoB;AACtC,0CAAe,KAAI,CAAC8B,IAAL,CAAUmB,WAAzB,EAAsC,YAAM;AAC3ChE,kBAAAA,OAAO,CAACC,GAAR,CAAY,yBAAZ;AACAc,kBAAAA,MAAM;AACN,iBAHD;AAIA,eALM,CAAP;AAMA,aARM;AASPG,YAAAA,MAAM,EAAG,SATF;AAUPC,YAAAA,OAAO,EAAE;AAVF;AADH,SA1BC;AAyCP8C,QAAAA,OAAO;AACNC,UAAAA,KAAK,EAAE,eAACpE,GAAD,EAAS;AACfE,YAAAA,OAAO,CAACC,GAAR,CAAY,kBAAZ;;AACA,gBAAIrD,aAAa,GAAG,KAAI,CAACX,OAAL,CAAaY,YAAb,CAA0BC,WAAW,CAACC,eAAtC,CAApB;;AACA,gBAAMC,KAAK,GAAGJ,aAAa,CAACK,aAAd,CAA4B,QAA5B,EAAsC,CAAtC,CAAd;AACAxB,YAAAA,EAAE,CAAC0I,YAAH,CAAgBC,UAAhB,CAA2B,KAAI,CAACvB,IAAL,CAAUwB,aAArC,EAAoD,UAACC,GAAD,EAAMC,SAAN,EAAoB;AACvE9I,cAAAA,EAAE,CAAC+I,WAAH,CAAeC,SAAf,CAAyBF,SAAzB,EAAoC,IAApC,EAA0C,GAA1C;AACA,aAFD;AAGAzE,YAAAA,GAAG,CAACkB,SAAJ,CAAc0D,OAAd,CAAsB,UAACC,KAAD,EAAW;AAChCA,cAAAA,KAAK,CAACjI,IAAN,CAAW0F,MAAX,GAAoB,KAApB;AACA,aAFD;AAGA,WAXK;AAYNwC,UAAAA,IAAI,EAAE,gBAAM;AACX5E,YAAAA,OAAO,CAACC,GAAR,CAAY,iBAAZ;AACAxE,YAAAA,EAAE,CAAC+I,WAAH,CAAeK,SAAf;AACA,WAfK;AAgBN9C,UAAAA,EAAE,EAAE;AACH+C,YAAAA,IAAI,EAAE;AADH;AAhBE,WAoBHzB,oBApBG,CAzCA;AA+DP0B,QAAAA,GAAG,EAAE;AACHb,UAAAA,KAAK,EAAE,eAACpE,GAAD,EAAMa,KAAN,EAAgB;AACtBX,YAAAA,OAAO,CAACC,GAAR,CAAY,UAAZ;;AACA,gBAAIrD,aAAa,GAAG,KAAI,CAACX,OAAL,CAAaY,YAAb,CAA0BC,WAAW,CAACC,eAAtC,CAApB;;AACA,gBAAMC,KAAK,GAAGJ,aAAa,CAACK,aAAd,CAA4B,QAA5B,EAAsC,CAAtC,CAAd;;AACA,gBAAGM,MAAM,CAACoG,UAAP,IAAqBpG,MAAM,CAACoG,UAAP,CAAkBqB,mBAA1C,EAA+D;AAC9D,cAAA,KAAI,CAACnB,sBAAL,GAA8B,KAA9B;AACAtG,cAAAA,MAAM,CAACoG,UAAP,CAAkBqB,mBAAlB;AACA;;AACD,sCAAe,KAAI,CAACnC,IAAL,CAAUoC,SAAzB,EAAoC,YAAM;AACzCjF,cAAAA,OAAO,CAACC,GAAR,CAAY,aAAZ;AACA;AACA,aAHD,EARsB,CAYtB;AACA;AACA;AACA;AACA;AACA;AACA;AAnBE;AA/DE;AAVK,KAAd;AAiGA,QAAMoB,KAAK,GAAG,EAAd;;AAtTmB,+BAuTX6D,CAvTW;AAwTlB,UAAMC,CAAC,GAAG,KAAI,CAACtH,cAAL,CAAoBqH,CAApB,EAAuBxI,IAAjC;AACA,UAAM0I,CAAC,GAAG,KAAI,CAACvH,cAAL,CAAoBqH,CAApB,EAAuB7D,KAAjC;AACAA,MAAAA,KAAK,CAAC+D,CAAD,CAAL,GAAU;AACT/J,QAAAA,OAAO,EAAE,mBAAM;AAEd,cAAI8J,CAAC,CAACrC,OAAN,EAAe;AAEd,gBAAMC,QAAQ,GAAGoC,CAAC,CAACtI,YAAF,CAAemG,EAAE,CAACC,QAAlB,CAAjB;AAEAF,YAAAA,QAAQ,CAACG,cAAT;AACAC,YAAAA,UAAU,CAAC,YAAM;AAChBJ,cAAAA,QAAQ,CAACK,YAAT,CAAsB,CAAtB,EAAyB,SAAzB,EAAoC,KAApC;AACA,aAFS,EAEP,CAFO,CAAV,CALc,CASd;AAEA,WAXD,MAWO;AAEN,gBAAMxG,aAAa,GAAGuI,CAAC,CAACtI,YAAF,CAAeC,WAAW,CAACC,eAA3B,CAAtB;AACAH,YAAAA,aAAa,CAACK,aAAd,CAA4B,SAA5B,EAAuC,CAAvC;AACA+C,YAAAA,OAAO,CAACC,GAAR,CAAYrD,aAAa,CAACyI,YAA1B,EAAwC,SAAxC;AACAzI,YAAAA,aAAa,CAAC0I,gBAAd,CAA+BxI,WAAW,CAACyF,WAAZ,CAAwBC,QAAvD,EAAiE,UAAC7B,KAAD,EAAW,CAC3E;AACA;AACA;AACA;AACA,aALD,EAKG,KALH;AAMA,WAxBa,CA4Bd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AAtCQ,OAAV;AA1TkB;;AAuTnB,SAAI,IAAIuE,CAAC,GAAG,CAAZ,EAAeA,CAAC,GAAI,KAAKrH,cAAL,CAAoB4F,MAAxC,EAAgDyB,CAAC,EAAjD,EAAqD;AAAA,YAA7CA,CAA6C;AA2CpD;;AACD,QAAI,KAAKrC,IAAL,CAAU0C,cAAd,EAA8B;AAC7B,UAAMJ,CAAC,GAAG,CAAC,KAAKtC,IAAL,CAAU0C,cAAX,GAA4B,IAAtC;AACAlE,MAAAA,KAAK,CAAC8D,CAAD,CAAL,GAAW;AACV9J,QAAAA,OAAO,EAAE,mBAAM;AACd2E,UAAAA,OAAO,CAACC,GAAR,CAAY,cAAZ;;AAEA,eAAI,IAAIiF,EAAC,GAAG,CAAZ,EAAeA,EAAC,GAAI,KAAI,CAACpH,kBAAL,CAAwB2F,MAA5C,EAAoDyB,EAAC,EAArD,EAAyD;AACxD,gBAAMC,EAAC,GAAG,KAAI,CAACrH,kBAAL,CAAwBoH,EAAxB,CAAV;;AACA,gBAAIC,EAAC,CAACrC,OAAN,EAAe;AAAA;AAEd,oBAAMC,QAAQ,GAAGoC,EAAC,CAACtI,YAAF,CAAemG,EAAE,CAACC,QAAlB,CAAjB;;AACAjD,gBAAAA,OAAO,CAACC,GAAR,CAAY,YAAZ,EAA0B8C,QAA1B;AAEAA,gBAAAA,QAAQ,CAACG,cAAT;AACAC,gBAAAA,UAAU,CAAC,YAAM;AAChBJ,kBAAAA,QAAQ,CAACK,YAAT,CAAsB,CAAtB,EAAyB,QAAzB,EAAmC,IAAnC;AACA,iBAFS,EAEP,CAFO,CAAV;AAKApD,gBAAAA,OAAO,CAACC,GAAR,CAAY,eAAZ,EAA6B8C,QAA7B,EAXc,CAad;AAbc;AAcd,aAdD,MAcO;AAEN,kBAAMnG,aAAa,GAAGuI,EAAC,CAACtI,YAAF,CAAeC,WAAW,CAACC,eAA3B,CAAtB;;AACAH,cAAAA,aAAa,CAACK,aAAd,CAA4B,QAA5B,EAAsC,CAAtC;AACA;AACD;AACD;AA1BS,OAAX;AA4BA;;AAEDD,IAAAA,KAAK,CAACuD,MAAN,CAAamD,KAAb,CAAmBrC,KAAnB,GAA2BA,KAA3B;AAIA,QAAMmE,WAAW,GAAG,2BAAcxI,KAAd,CAApB;AACAO,IAAAA,MAAM,CAACiI,WAAP,GAAqBA,WAArB;AACA,SAAKC,kBAAL,GAA0B,uBAAUD,WAAV,EAAuBE,YAAvB,CAAoC,UAAC1I,KAAD,EAAW,CACzE;AACC,KAFyB,CAA1B;AAGA,SAAKyI,kBAAL,CAAwBE,KAAxB;;AACA,QAAIpI,MAAM,CAACkI,kBAAX,EAA+B;AAC9BlI,MAAAA,MAAM,CAACkI,kBAAP,GAA4BA,kBAA5B;AACA;AAGD,GAxiBO;AA8iBR;AACAE,EAAAA,KA/iBQ,mBA+iBA;AAAA;;AACP,QAAIC,OAAO,GAAG,KAAKA,OAAL,CAAaC,IAAb,CAAkB,IAAlB,CAAd;;AACA,QAAItI,MAAM,IAAIA,MAAM,CAACoG,UAArB,EAAiC;AAChCiC,MAAAA,OAAO,GAAGrI,MAAM,CAACoG,UAAP,CAAkBiC,OAA5B;AACA;;AAEDA,IAAAA,OAAO,CAAC,UAAC/C,IAAD,EAAU;AACjB;AACA,MAAA,MAAI,CAACA,IAAL,GAAYA,IAAI,IAAI,MAAI,CAACiD,cAAL,EAApB;AACA,MAAA,MAAI,CAACjD,IAAL,GAAYkD,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACE,SAAL,CAAe,MAAI,CAACpD,IAApB,CAAX,CAAZ;;AAEA,MAAA,MAAI,CAACqD,WAAL;AACA,KANM,CAAP;AAOA3I,IAAAA,MAAM,CAAC4I,GAAP,GAAa5I,MAAM,CAAC4I,GAAP,IAAc,EAA3B;;AACA,QAAI5I,MAAM,CAAC4I,GAAX,EAAgB;AACf5I,MAAAA,MAAM,CAAC4I,GAAP,CAAWC,sBAAX,GAAoC,UAAC1E,MAAD,EAAY;AAC/C,YAAI,CAAC,MAAI,CAAC+D,kBAAV,EAA8B;AAC7B;AACA,SAH8C,CAI/C;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,YAAMY,SAAS,GAAGN,IAAI,CAACC,KAAL,CAAWtE,MAAX,CAAlB;AACA1B,QAAAA,OAAO,CAACC,GAAR,CAAY,iBAAgB8F,IAAI,CAACE,SAAL,CAAeI,SAAS,CAACC,kBAAzB,CAA5B;AACA,YAAMC,CAAC,GAAGF,SAAS,CAACC,kBAApB;;AACA,YAAIC,CAAC,CAACC,CAAF,IAAO,CAAC,CAAR,IAAaD,CAAC,CAACE,CAAF,IAAO,CAAC,CAAzB,EAA4B;AAC3B,UAAA,MAAI,CAAC7I,mBAAL,CAAyBG,GAAzB,GAA+B,IAA/B;AACA,UAAA,MAAI,CAACH,mBAAL,CAAyBI,KAAzB,GAAiC,KAAjC;AACA;AACA;;AACD,QAAA,MAAI,CAACJ,mBAAL,GAA2B;AAC1BG,UAAAA,GAAG,EAAC;AACHyI,YAAAA,CAAC,EAAED,CAAC,CAACC,CADF;AAEHC,YAAAA,CAAC,EAAEF,CAAC,CAACE;AAFF,WADsB;AAK1BzI,UAAAA,KAAK,EAAE;AALmB,SAA3B;;AAOA,QAAA,MAAI,CAAC0I,YAAL,CAAkBH,CAAC,CAACC,CAApB,EAAuBD,CAAC,CAACE,CAAzB;AACA,OA3BD;AA4BA;;AACD,SAAKE,OAAL,GAAe,KAAf;AAEA,GA7lBO;AA8lBRhF,EAAAA,aA9lBQ,yBA8lBMiF,CA9lBN,EA8lBS;AAChB5G,IAAAA,OAAO,CAACC,GAAR,CAAY,QAAZ,EAAsB2G,CAAtB;;AACA,QAAI,CAAC,KAAKhJ,mBAAN,IAA6B,CAAC,KAAKA,mBAAL,CAAyBG,GAA3D,EAAgE;AAC/D,aAAO,IAAP;AACA;;AACD,QAAMwI,CAAC,GAAG,KAAK3I,mBAAL,GAA2B,KAAKA,mBAAL,CAAyBG,GAAzB,IAAgC;AAACyI,MAAAA,CAAC,EAAC,CAAH;AAAMC,MAAAA,CAAC,EAAC;AAAR,KAA3D,GAAwE;AAACD,MAAAA,CAAC,EAAC,CAAH;AAAMC,MAAAA,CAAC,EAAC;AAAR,KAAlF;AACA,QAAMI,CAAC,GAAGN,CAAC,CAACC,CAAF,GAAMI,CAAC,CAACJ,CAAR,IAAaD,CAAC,CAACC,CAAF,GAAOI,CAAC,CAACJ,CAAF,GAAMI,CAAC,CAACnI,KAAtC;AACA,QAAMqI,CAAC,GAAGP,CAAC,CAACE,CAAF,GAAMG,CAAC,CAACH,CAAR,IAAaF,CAAC,CAACE,CAAF,GAAOG,CAAC,CAACH,CAAF,GAAMG,CAAC,CAAClI,MAAtC;AACA,WAAOmI,CAAC,IAAIC,CAAZ;AAEA,GAxmBO;AA0mBRlB,EAAAA,OA1mBQ,mBA0mBAmB,IA1mBA,EA0mBM;AACb,QAAIxJ,MAAM,IAAIA,MAAM,CAACoG,UAArB,EAAiC;AAChCpG,MAAAA,MAAM,CAACoG,UAAP,CAAkBiC,OAAlB,CAA0BmB,IAA1B,EAAgC,OAAhC;AACA;AACA;;AAED,QAAMC,WAAW,GAAGvL,EAAE,CAACwL,IAAH,CAAQ,aAAR,CAApB;;AACA,QAAID,WAAJ,EAAiB;AAChB,UAAME,oBAAoB,GAAGF,WAAW,CAACnK,YAAZ,CAAyB,aAAzB,CAA7B;AACAqK,MAAAA,oBAAoB,CAACtB,OAArB,CAA6BmB,IAA7B;AACA;AACA;;AAEDA,IAAAA,IAAI,CAAC,KAAKjB,cAAL,EAAD,CAAJ;AACA,GAxnBO;AA0nBRA,EAAAA,cA1nBQ,4BA0nBS;AAChB,WAAQ;AAAC,qBAAc,4EAAf;AAA4F,wBAAiB,CAA7G;AAA+G,qBAAc,4EAA7H;AAA0M,uBAAgB,4EAA1N;AAAuS,qBAAc,4EAArT;AAAkY,qBAAc,4EAAhZ;AAA6d,sBAAe,4EAA5e;AAAyjB,sBAAe,4EAAxkB;AAAqpB,mBAAY,4EAAjqB;AAA8uB,gBAAS;AAAC,eAAM,4EAAP;AAAoF,gBAAO;AAAC,eAAI,MAAL;AAAY,eAAI,CAAhB;AAAkB,mBAAQ,MAA1B;AAAiC,oBAAS;AAA1C;AAA3F,OAAvvB;AAAk4B,wBAAiB,CAAC;AAAC,cAAK,eAAN;AAAsB,iBAAQ,CAA9B;AAAgC,qBAAY,4EAA5C;AAAyH,oBAAW,MAApI;AAA2I,qBAAY,UAAvJ;AAAkK,oBAAW,CAA7K;AAA+K,oBAAW,CAA1L;AAA4L,oBAAW,CAAvM;AAAyM,oBAAW,UAApN;AAA+N,mBAAU;AAAC,eAAI,MAAL;AAAY,eAAI;AAAhB,SAAzO;AAAgQ,gBAAO,GAAvQ;AAA2Q,qBAAY,GAAvR;AAA2R,gBAAO,KAAlS;AAAwS,gBAAO,KAA/S;AAAqT,uBAAc;AAAC,iBAAM,6EAAP;AAAqF,kBAAO;AAA5F,SAAnU;AAAob,uBAAc;AAAC,iBAAM,8EAAP;AAAsF,kBAAO;AAA7F,SAAlc;AAAqjB,sBAAa;AAAC,iBAAM,4EAAP;AAAoF,kBAAO;AAA3F,SAAlkB;AAAirB,oBAAW,OAA5rB;AAAosB,gBAAO;AAAC,eAAI,KAAL;AAAW,eAAI,IAAf;AAAoB,mBAAQ,GAA5B;AAAgC,oBAAS;AAAzC;AAA3sB,OAAD,EAA2vB;AAAC,cAAK,eAAN;AAAsB,iBAAQ,CAA9B;AAAgC,qBAAY,4EAA5C;AAAyH,oBAAW,MAApI;AAA2I,qBAAY,UAAvJ;AAAkK,oBAAW,CAA7K;AAA+K,oBAAW,CAA1L;AAA4L,oBAAW,CAAvM;AAAyM,oBAAW,UAApN;AAA+N,mBAAU;AAAC,eAAI,MAAL;AAAY,eAAI;AAAhB,SAAzO;AAAgQ,gBAAO,GAAvQ;AAA2Q,qBAAY,GAAvR;AAA2R,gBAAO,MAAlS;AAAyS,gBAAO,KAAhT;AAAsT,uBAAc;AAAC,iBAAM,6EAAP;AAAqF,kBAAO;AAA5F,SAApU;AAAkb,uBAAc;AAAC,iBAAM,8EAAP;AAAsF,kBAAO;AAA7F,SAAhc;AAAgjB,sBAAa;AAAC,iBAAM,4EAAP;AAAoF,kBAAO;AAA3F,SAA7jB;AAAyqB,oBAAW,OAAprB;AAA4rB,gBAAO;AAAC,eAAI,MAAL;AAAY,eAAI,KAAhB;AAAsB,mBAAQ,GAA9B;AAAkC,oBAAS;AAA3C;AAAnsB,OAA3vB;AAAn5B,KAAR,CADgB,CAEhB;AACA,GA7nBO;AA+nBRI,EAAAA,WA/nBQ,yBA+nBM;AACb,SAAKiB,eAAL;AACA,SAAKC,eAAL;AACA,SAAKC,eAAL;AACA,SAAKC,OAAL;AACA,GApoBO;AAuoBRH,EAAAA,eAvoBQ,6BAuoBU;AAEjB,SAAK1J,aAAL,CAAmBoE,IAAnB,CAAwB;AAAE0F,MAAAA,GAAG,EAAE,KAAK1E,IAAL,CAAU2E,MAAV,CAAiBD;AAAxB,KAAxB;;AAEA,yDAAgB,KAAK1E,IAAL,CAAU4E,cAA1B,wCAA0C;AAAA,UAA/BC,CAA+B;;AACzC,UAAIA,CAAC,CAACC,IAAF,IAAS,GAAb,EAAkB;AACjB,aAAKlK,aAAL,CAAmBoE,IAAnB,CAAwB;AAAE0F,UAAAA,GAAG,EAAEG,CAAC,CAACE,UAAF,CAAaL;AAApB,SAAxB;AACA;;AAED,UAAIG,CAAC,CAACC,IAAF,IAAS,GAAb,EAAkB;AACjB,aAAKlK,aAAL,CAAmBoE,IAAnB,CAAwB;AAAE0F,UAAAA,GAAG,EAAEG,CAAC,CAACE,UAAF,CAAaL;AAApB,SAAxB;AACA;;AACD,UAAIG,CAAC,CAACC,IAAF,IAAS,GAAb,EAAkB;AACjB,aAAKlK,aAAL,CAAmBoE,IAAnB,CAAwB;AAAE0F,UAAAA,GAAG,EAAEG,CAAC,CAACG;AAAT,SAAxB;AACA;AACD;AACD,GAvpBO;AAwpBRC,EAAAA,gBAxpBQ,4BAwpBSP,GAxpBT,EAwpBcQ,GAxpBd,EAwpBmB;AAAA;;AAC1B,QAAIR,GAAJ,EAAS;AACR9L,MAAAA,EAAE,CAAC0I,YAAH,CAAgBC,UAAhB,CAA2BmD,GAA3B,EAAgC,UAACjD,GAAD,EAAMC,SAAN,EAAoB;AACnD,YAAIA,SAAJ,EAAe;AACd,UAAA,MAAI,CAACwD,GAAD,CAAJ,GAAYxD,SAAZ;AACA;AACD,OAJD;AAKA;AACD,GAhqBO;AAiqBR6C,EAAAA,eAjqBQ,6BAiqBU;AAEjB,SAAK1J,aAAL,CAAmBmE,IAAnB,CAAwB;AAAE0F,MAAAA,GAAG,EAAE,KAAK1E,IAAL,CAAUiB;AAAjB,KAAxB,EAFiB,CAGjB;AACA;AACA;;;AACA,SAAKpG,aAAL,CAAmBmE,IAAnB,CAAwB;AAAE0F,MAAAA,GAAG,EAAE,KAAK1E,IAAL,CAAUmB;AAAjB,KAAxB;;AACA,SAAKtG,aAAL,CAAmBmE,IAAnB,CAAwB;AAAE0F,MAAAA,GAAG,EAAE,KAAK1E,IAAL,CAAUwB;AAAjB,KAAxB;;AACA,QAAI,KAAKxB,IAAL,CAAUmF,WAAd,EAA2B;AAC1B,WAAKtK,aAAL,CAAmBmE,IAAnB,CAAwB;AAAE0F,QAAAA,GAAG,EAAE,KAAK1E,IAAL,CAAUmF;AAAjB,OAAxB;;AACA,WAAKhM,UAAL,GAAkB,KAAK6G,IAAL,CAAUmF,WAA5B;AACA;;AACD,QAAI,KAAKnF,IAAL,CAAUoF,WAAd,EAA2B;AAC1B,WAAKvK,aAAL,CAAmBmE,IAAnB,CAAwB;AAAE0F,QAAAA,GAAG,EAAE,KAAK1E,IAAL,CAAUoF;AAAjB,OAAxB;;AACA,WAAKpM,UAAL,GAAkB,KAAKgH,IAAL,CAAUoF,WAA5B;AACA;;AACD,SAAKvK,aAAL,CAAmBmE,IAAnB,CAAwB;AAAE0F,MAAAA,GAAG,EAAE,KAAK1E,IAAL,CAAUqF;AAAjB,KAAxB;;AACA,SAAKxK,aAAL,CAAmBmE,IAAnB,CAAwB;AAAE0F,MAAAA,GAAG,EAAE,KAAK1E,IAAL,CAAUsF;AAAjB,KAAxB;;AACA,SAAKzK,aAAL,CAAmBmE,IAAnB,CAAwB;AAAE0F,MAAAA,GAAG,EAAE,KAAK1E,IAAL,CAAUoC;AAAjB,KAAxB;;AAGA,0DAAgB,KAAKpC,IAAL,CAAU4E,cAA1B,2CAA0C;AAAA,UAA/BC,CAA+B;;AACzC,UAAIA,CAAC,CAACC,IAAF,IAAS,GAAb,EAAkB;AACjB,aAAKjK,aAAL,CAAmBmE,IAAnB,CAAwB;AAAE0F,UAAAA,GAAG,EAAEG,CAAC,CAACzG;AAAT,SAAxB;AACA;AACD;AACD,GA3rBO;AA4rBRyF,EAAAA,YA5rBQ,0BA4rBO;AACd,QAAM0B,WAAW,GAAG3M,EAAE,CAACwL,IAAH,CAAQ,qBAAR,CAApB;;AACA,QAAI,CAAC,KAAKN,OAAV,EAAmB;AAClByB,MAAAA,WAAW,CAAChG,MAAZ,GAAqB,KAArB;AACA;AACA;;AACD,QAAI,CAAC,KAAKiG,YAAV,EAAwB;AACvB,WAAKA,YAAL,GAAoB,IAAI5M,EAAE,CAACS,IAAP,EAApB;AACA,WAAKmM,YAAL,CAAkBC,MAAlB,GAA2BF,WAA3B;AACA,WAAKC,YAAL,CAAkBhM,IAAlB,GAAyB,cAAzB;AACA,WAAKgM,YAAL,CAAkBE,YAAlB,CAA+B9M,EAAE,CAAC+M,QAAlC;AACA;;AACD,QAAMC,IAAI,GAAG,KAAKJ,YAAL,CAAkBxL,YAAlB,CAA+BpB,EAAE,CAAC+M,QAAlC,CAAb;AACAC,IAAAA,IAAI,CAACC,KAAL;AACA,QAAMC,MAAM,GAAGlN,EAAE,CAACwL,IAAH,CAAQ,4BAAR,CAAf;AAdc,QAeA2B,KAfA,GAewBD,MAfxB,CAePlK,KAfO;AAAA,QAeeoK,KAff,GAewBF,MAfxB,CAeOjK,MAfP;AAAA,gCAgBS,KAAKd,mBAAL,CAAyBG,GAhBlC;AAAA,QAgBJ+K,EAhBI,yBAgBPtC,CAhBO;AAAA,QAgBGuC,EAhBH,yBAgBAtC,CAhBA;AAiBd,QAAID,CAAC,GAAGoC,KAAK,GAAGE,EAAR,GAAaF,KAAK,GAAG,CAA7B;AACA,QAAInC,CAAC,GAAGoC,KAAK,GAAIA,KAAK,GAAGE,EAAjB,GAAuBF,KAAK,GAAG,CAA/B,GAAmC,EAA3C;AACA,QAAMG,EAAE,GAAG,IAAIvN,EAAE,CAACS,IAAP,EAAX;AAEAuM,IAAAA,IAAI,CAACQ,SAAL,GAAexN,EAAE,CAACyN,KAAH,CAAS,GAAT,EAAc,CAAd,EAAiB,CAAjB,CAAf;AACAT,IAAAA,IAAI,CAACU,MAAL,CAAY3C,CAAZ,EAAeC,CAAf,EAAkB,EAAlB;AACAgC,IAAAA,IAAI,CAACW,IAAL;AACAX,IAAAA,IAAI,CAACY,MAAL;AACA,GArtBO;AAstBRC,EAAAA,aAttBQ,2BAstBQ;AACf,QAAMlB,WAAW,GAAG3M,EAAE,CAACwL,IAAH,CAAQ,qBAAR,CAApB;;AACA,QAAI,CAAC,KAAKN,OAAV,EAAmB;AAClByB,MAAAA,WAAW,CAAChG,MAAZ,GAAqB,KAArB;AACA;AACA;;AACDgG,IAAAA,WAAW,CAAChG,MAAZ,GAAqB,IAArB;AACApC,IAAAA,OAAO,CAACC,GAAR,CAAY,qBAAZ;AACA,QAAM0I,MAAM,GAAGlN,EAAE,CAACwL,IAAH,CAAQ,4BAAR,CAAf;AACA,QAAMsC,MAAM,GAAG9N,EAAE,CAACwL,IAAH,CAAQ,QAAR,CAAf;AATe,QAUD2B,KAVC,GAUuBD,MAVvB,CAURlK,KAVQ;AAAA,QAUcoK,KAVd,GAUuBF,MAVvB,CAUMjK,MAVN;AAAA,gCAWmB,KAAKmE,IAAL,CAAU2E,MAAV,CAAiB5F,IAXpC;AAAA,QAWD4H,GAXC,yBAWR/K,KAXQ;AAAA,QAWYgL,GAXZ,yBAWI/K,MAXJ;AAYf,QAAMgL,MAAM,GAAGF,GAAG,GAAGZ,KAArB;AACA,QAAMe,MAAM,GAAGF,GAAG,GAAGZ,KAArB;AACA,QAAIe,KAAK,GAAG,KAAZ;AACA,SAAK/G,IAAL,CAAU4E,cAAV,CAAyB/C,OAAzB,CAAiC,UAAAmF,IAAI,EAAI;AAExC,UAAID,KAAJ,EAAW,CACV;AACA;;AACD,UAAIC,IAAI,CAAClC,IAAL,IAAa,GAAjB,EAAsB;AACrB;AACA;;AACDiC,MAAAA,KAAK,GAAG,IAAR;AACA,UAAME,EAAE,GAAG,IAAIrO,EAAE,CAACS,IAAP,EAAX;AACA,UAAM6N,OAAO,GAAG,IAAItO,EAAE,CAACS,IAAP,EAAhB;AACA6N,MAAAA,OAAO,CAACzB,MAAR,GAAiBwB,EAAjB;AACA,UAAME,GAAG,GAAGD,OAAO,CAACxB,YAAR,CAAqB9M,EAAE,CAACwO,KAAxB,CAAZ;AACAF,MAAAA,OAAO,CAACb,KAAR,GAAgBzN,EAAE,CAACyN,KAAH,CAAS,CAAT,EAAW,CAAX,EAAa,CAAb,CAAhB;AACAc,MAAAA,GAAG,CAACE,MAAJ,GAAaL,IAAI,CAACM,WAAL,CAAiB9N,IAAjB,CAAsB+N,SAAtB,CAAgC,CAAhC,EAAmCP,IAAI,CAACM,WAAL,CAAiB9N,IAAjB,CAAsBoH,MAAtB,GAA+B,CAAlE,CAAb;AACAqG,MAAAA,EAAE,CAACzN,IAAH,GAAU2N,GAAG,CAACE,MAAd;AACAJ,MAAAA,EAAE,CAACxB,MAAH,GAAYF,WAAZ;AACA0B,MAAAA,EAAE,CAACrL,KAAH,GAAWmK,KAAX;AACAkB,MAAAA,EAAE,CAACpL,MAAH,GAAYmK,KAAZ;AAEA,UAAMJ,IAAI,GAAGqB,EAAE,CAACvB,YAAH,CAAgB9M,EAAE,CAAC+M,QAAnB,CAAb;AACA,UAAM5B,CAAC,GAAG,qBAAU,CAAV,EAAY,GAAZ,CAAV;AACA,UAAMyD,CAAC,GAAG,qBAAU,CAAV,EAAY,GAAZ,CAAV;AACA,UAAMC,CAAC,GAAG,qBAAU,CAAV,EAAY,GAAZ,CAAV;AACA7B,MAAAA,IAAI,CAACQ,SAAL,GAAexN,EAAE,CAACyN,KAAH,CAAStC,CAAT,EAAYyD,CAAZ,EAAeC,CAAf,EAAkB,GAAlB,CAAf;AAxBwC,uBAyBOT,IAAI,CAACjI,IAzBZ;AAAA,UAyB9B2I,EAzB8B,cAyBjC/D,CAzBiC;AAAA,UAyBvBgE,EAzBuB,cAyB1B/D,CAzB0B;AAAA,UAyBZgE,EAzBY,cAyBnBhM,KAzBmB;AAAA,UAyBAiM,EAzBA,cAyBRhM,MAzBQ;AA0BxC,UAAImI,CAAC,GAAI4D,EAAE,GAAGjB,GAAN,GAAaZ,KAArB;AACA,UAAI9B,CAAC,GAAI4D,EAAE,GAAGjB,GAAN,GAAaZ,KAArB;AACA,UAAIrC,CAAC,GAAI+D,EAAE,GAAGf,GAAN,GAAaZ,KAAb,GAAqBA,KAAK,GAAG,CAArC;AACA,UAAInC,CAAC,GAAGoC,KAAK,GAAK2B,EAAE,GAAGf,GAAN,GAAaZ,KAAtB,GAA+B/B,CAA/B,GAAmC+B,KAAK,GAAG,CAAnD,CA7BwC,CA8BxC;AACA;AACA;AACA;AACS;AACT;AACA;;AACAkB,MAAAA,OAAO,CAACvD,CAAR,GAAYA,CAAZ;AACAuD,MAAAA,OAAO,CAACtD,CAAR,GAAYA,CAAC,GAAGK,CAAhB,CAtCwC,CAuCxC;AACA;AACA;;AACA9G,MAAAA,OAAO,CAACC,GAAR,CAAY,SAAZ,EAAuB4J,IAAI,CAACM,WAAL,CAAiB9N,IAAxC,EAA8CmK,CAA9C,EAAiDC,CAAjD,EAAoDI,CAApD,EAAuDC,CAAvD;AACA2B,MAAAA,IAAI,CAACkC,QAAL,CAAcnE,CAAd,EAAiBC,CAAjB,EAAoBI,CAApB,EAAuBC,CAAvB;AACA2B,MAAAA,IAAI,CAACY,MAAL;AAEA,KA9CD;AAgDA,GArxBO;AAsxBRhC,EAAAA,eAtxBQ,6BAsxBU,CAEjB,CAxxBO;AA0xBRC,EAAAA,OA1xBQ,qBA0xBE;AAAA;;AAET,QAAMsD,UAAU,GAAG,KAAKnN,aAAL,CAAmBoN,MAAnB,CAA0B,KAAKnN,aAA/B,EAA8CmN,MAA9C,CAAqD,KAAKlN,aAA1D,CAAnB,CAFS,CAGT;;;AACAlC,IAAAA,EAAE,CAAC0I,YAAH,CAAgB2G,OAAhB,CAAwBF,UAAxB,EAAoC,IAApC,EAA0C,UAAC7L,CAAD,EAAIoG,CAAJ,EAAO4F,IAAP,EAAgB,CACzD;AACA,KAFD,EAEG,UAACzG,GAAD,EAAMzB,IAAN,EAAe;AACjB;AACA,UAAM8F,MAAM,GAAGlN,EAAE,CAACwL,IAAH,8BAAf;AACA,UAAM+D,QAAQ,GAAGvP,EAAE,CAACwL,IAAH,iCAAjB;AACA+D,MAAAA,QAAQ,CAAC5I,MAAT,GAAkB,KAAlB;AACA,UAAM6I,QAAQ,GAAG,MAAI,CAACpI,IAAL,CAAU2E,MAAV,CAAiB5F,IAAlC;AACA,qCAAoB,MAAI,CAACiB,IAAL,CAAU2E,MAAV,CAAiBD,GAArC,EAA0C,UAAC2D,EAAD,EAAQ;AACjD,YAAMC,EAAE,GAAGH,QAAQ,CAACnO,YAAT,CAAsBpB,EAAE,CAAC2P,MAAzB,CAAX;AACAD,QAAAA,EAAE,CAACE,WAAH,GAAiBH,EAAjB;AACAF,QAAAA,QAAQ,CAAC5I,MAAT,GAAkB,IAAlB;AAEA,YAAIkJ,OAAO,GAAG,CAAd;AACA,YAAIC,aAAa,GAAG,CAApB;;AACA,8DAAmB,MAAI,CAAC1I,IAAL,CAAU4E,cAA7B,2CAA6C;AAAA,cAAnC9C,KAAmC;;AAC5C,cAAIA,KAAK,CAACgD,IAAN,IAAc,GAAd,IAAqBhD,KAAK,CAACgD,IAAN,IAAc,GAAvC,EAA4C;AAC3C2D,YAAAA,OAAO;AACP;AACD;;AACD,8DAAmB,MAAI,CAACzI,IAAL,CAAU4E,cAA7B,2CAA6C;AAAA,cAAnC9C,MAAmC;;AAG5C,cAAIA,MAAK,CAACgD,IAAN,IAAc,GAAlB,EAAuB;AAAA;AACtB,kBAAM6D,EAAE,GAAG,CAAE7C,MAAM,CAAClK,KAAP,GAAgBkG,MAAK,CAAC8G,QAAvB,GAAoC9C,MAAM,CAACjK,MAAP,GAAiBiG,MAAK,CAAC+G,QAA5D,IAAyE,CAApF;AACA,kBAAMhP,IAAI,GAAG,IAAIjB,EAAE,CAACS,IAAP,EAAb;AACAQ,cAAAA,IAAI,CAAC4L,MAAL,GAAcK,MAAd;AACA,kBAAMgD,GAAG,GAAGjP,IAAI,CAAC6L,YAAL,CAAkB9M,EAAE,CAAC2P,MAArB,CAAZ;AACA,6CAAoBzG,MAAK,CAACkD,OAA1B,EAAmC,UAACqD,EAAD,EAAQ;AAC3CS,gBAAAA,GAAG,CAACN,WAAJ,GAAkBH,EAAlB;AACAxO,gBAAAA,IAAI,CAACkP,KAAL,GAAaJ,EAAb;AACC,eAHD;AALsB;AAUtB;;AACD,cAAI7G,MAAK,CAACgD,IAAN,IAAc,GAAd,IAAqBhD,MAAK,CAACgD,IAAN,IAAc,GAAvC,EAA4C;AAAA;AAE3C,kBAAMkE,CAAC,GAAG,IAAIpQ,EAAE,CAACS,IAAP,EAAV;AACA2P,cAAAA,CAAC,CAACD,KAAF,GAAU,IAAV;AACAC,cAAAA,CAAC,CAACvD,MAAF,GAAWK,MAAX;AACAkD,cAAAA,CAAC,CAACzJ,MAAF,GAAW,KAAX;;AAEA,kBAAIuC,MAAK,CAACmH,QAAN,IAAkB,OAAtB,EAA+B;AAE9B,oBAAM/I,QAAQ,GAAG8I,CAAC,CAACtD,YAAF,CAAevF,EAAE,CAACC,QAAlB,CAAjB;AACA4I,gBAAAA,CAAC,CAAC/I,OAAF,GAAY,IAAZ;AAEA,qCAAUC,QAAV,EAAoB4B,MAAK,CAACiD,UAAN,CAAiBvL,IAArC,EAA2C;AAC1C0P,kBAAAA,GAAG,EAAEpH,MAAK,CAACiD,UAAN,CAAiBL,GADoB;AAE1CyE,kBAAAA,KAAK,EAAErH,MAAK,CAACsH,WAAN,CAAkB1E,GAFiB;AAG1C2E,kBAAAA,GAAG,EAAEvH,MAAK,CAACwF,WAAN,CAAkB5C;AAHmB,iBAA3C,EAIG4E,IAJH,CAIQ,gBAAqB;AAAA,sBAAnB1N,KAAmB,QAAnBA,KAAmB;AAAA,sBAAZC,MAAY,QAAZA,MAAY;AAC5BmN,kBAAAA,CAAC,CAACpN,KAAF,GAAUA,KAAV;AACAoN,kBAAAA,CAAC,CAACnN,MAAF,GAAWA,MAAX;AACAmN,kBAAAA,CAAC,CAACzJ,MAAF,GAAW,IAAX,CAH4B,CAI5B;AACA;;AACAW,kBAAAA,QAAQ,CAACK,YAAT,CAAsB,CAAtB,EAAyB,SAAzB,EAAoC,IAApC;;AAEA,kBAAA,MAAI,CAACtF,kBAAL,CAAwB+D,IAAxB,CAA6BgK,CAA7B;;AACAN,kBAAAA,aAAa;AACbvL,kBAAAA,OAAO,CAACC,GAAR,CAAYsL,aAAZ,EAA2BD,OAA3B;;AACA,sBAAIC,aAAa,IAAID,OAArB,EAA8B;AAC7B,oBAAA,MAAI,CAACc,OAAL;AACA;AACD,iBAlBD,WAkBS,YAAM;AACdb,kBAAAA,aAAa;AACbvL,kBAAAA,OAAO,CAACC,GAAR,CAAYsL,aAAZ,EAA2BD,OAA3B;;AACA,sBAAIC,aAAa,IAAID,OAArB,EAA8B;AAC7B,oBAAA,MAAI,CAACc,OAAL;AACA;AACD,iBAxBD;AA0BA,eA/BD,MA+BO;AAEN,oBAAMC,EAAE,GAAGR,CAAC,CAACtD,YAAF,CAAezL,WAAW,CAACC,eAA3B,CAAX;AAEA,2CAAgBsP,EAAhB,EAAoB;AACnBN,kBAAAA,GAAG,EAAEpH,MAAK,CAACiD,UAAN,CAAiBL,GADH;AAEnByE,kBAAAA,KAAK,EAAErH,MAAK,CAACsH,WAAN,CAAkB1E,GAFN;AAGnB2E,kBAAAA,GAAG,EAAEvH,MAAK,CAACwF,WAAN,CAAkB5C;AAHJ,iBAApB,EAIG4E,IAJH,CAIQ,iBAAqB;AAAA,sBAAnB1N,KAAmB,SAAnBA,KAAmB;AAAA,sBAAZC,MAAY,SAAZA,MAAY;AAC5BmN,kBAAAA,CAAC,CAACpN,KAAF,GAAUA,KAAV;AACAoN,kBAAAA,CAAC,CAACnN,MAAF,GAAWA,MAAX;AACAmN,kBAAAA,CAAC,CAACzJ,MAAF,GAAW,IAAX;AACAiK,kBAAAA,EAAE,CAACpP,aAAH,CAAiB,MAAjB,EAAyB,CAAzB;;AACA,kBAAA,MAAI,CAACa,kBAAL,CAAwB+D,IAAxB,CAA6BgK,CAA7B;;AACAN,kBAAAA,aAAa;AACbvL,kBAAAA,OAAO,CAACC,GAAR,CAAYsL,aAAZ,EAA2BD,OAA3B;;AACA,sBAAIC,aAAa,IAAID,OAArB,EAA8B;AAC7B,oBAAA,MAAI,CAACc,OAAL;AACA;AACD,iBAfD,WAeS,YAAM;AACdb,kBAAAA,aAAa;AACbvL,kBAAAA,OAAO,CAACC,GAAR,CAAYsL,aAAZ,EAA2BD,OAA3B;;AACA,sBAAIC,aAAa,IAAID,OAArB,EAA8B;AAC7B,oBAAA,MAAI,CAACc,OAAL;AACA;AACD,iBArBD;AAsBA;;AAID,kBAAIzH,MAAK,CAACgD,IAAN,IAAc,GAAlB,EAAuB;AACtB,oBAAM2E,QAAQ,GAAG;AAChB5P,kBAAAA,IAAI,EAAEmP,CADU;AAEhB5K,kBAAAA,SAAS,EAAE0D,MAAK,CAAC1D,SAFD;AAGhBW,kBAAAA,IAAI,EAAE;AACL4E,oBAAAA,CAAC,EAAE7B,MAAK,CAAC/C,IAAN,CAAW4E,CAAX,GAAeyE,QAAQ,CAACxM,KADtB;AAELgI,oBAAAA,CAAC,EAAE9B,MAAK,CAAC/C,IAAN,CAAW6E,CAAX,GAAewE,QAAQ,CAACvM,MAFtB;AAGLD,oBAAAA,KAAK,EAAEkG,MAAK,CAAC/C,IAAN,CAAWnD,KAAX,GAAmBwM,QAAQ,CAACxM,KAH9B;AAILC,oBAAAA,MAAM,EAAEiG,MAAK,CAAC/C,IAAN,CAAWlD,MAAX,GAAoBuM,QAAQ,CAACvM;AAJhC;AAHU,iBAAjB;;AAUA,gBAAA,MAAI,CAAC/B,qBAAL,CAA2BkF,IAA3B,CAAgCyK,QAAhC,EAXsB,CAatB;;;AAEA,oBAAI3H,MAAK,CAAC4H,SAAV,EAAqB;AACpB,sBAAMnH,CAAC,GAAG,CAACT,MAAK,CAAC4H,SAAP,GAAmB,IAA7B;;AACA,sBAAG,CAACC,KAAK,CAACpH,CAAD,CAAT,EAAc;AACb,oBAAA,MAAI,CAACvH,cAAL,CAAoBgE,IAApB,CAAyB;AACxBnF,sBAAAA,IAAI,EAAEmP,CADkB;AAExBxK,sBAAAA,KAAK,EAAE+D;AAFiB,qBAAzB;AAIA;AACD;AACD;AA5F0C;AA6F3C;AACD;AACD,OAzHD,EANiB,CAiIjB;;AACApF,MAAAA,OAAO,CAACC,GAAR,CAAY,yBAAZ,EAlIiB,CAoIpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEGxE,MAAAA,EAAE,CAACgR,KAAH,CAASC,eAAT,CAAyB,KAAzB;AACA,KAtJD;AAuJA,GAr7BO;AAw7BRN,EAAAA,OAx7BQ,qBAw7BE;AACT,QAAI7O,MAAM,IAAIA,MAAM,CAAC,KAAD,CAAhB,IAA2BA,MAAM,CAAC,KAAD,CAAN,CAAcoP,mBAA7C,EAAkE;AACjEpP,MAAAA,MAAM,CAAC,KAAD,CAAN,CAAcoP,mBAAd;AACA;;AACD,SAAKC,QAAL,GAJS,CAKT;AACA;;AACA,SAAKC,MAAL,GAPS,CAQT;;AACA,SAAKvD,aAAL;AACA,SAAK5J,kBAAL;AACA,GAn8BO;AAq8BRoN,EAAAA,SAAS,EAAE,IAr8BH;AAs8BRF,EAAAA,QAt8BQ,sBAs8BG;AACV;AACA,SAAKE,SAAL,GAAiB,IAAjB;AACA,GAz8BO;AA28BR;AACA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AAGA;AAEA;AACA;AACA;AACA;AACA;AAEAC,EAAAA,mBAh+BQ,+BAg+BYlK,IAh+BZ,EAg+BkB;AAGzB,QAAMmK,EAAE,GAAGvR,EAAE,CAACwL,IAAH,iCAAX;AAEA,QAAMgG,IAAI,GAAID,EAAE,CAACpB,KAAH,GAAWoB,EAAE,CAACvO,KAAf,GAAwB,KAAKoE,IAAL,CAAU2E,MAAV,CAAiB5F,IAAjB,CAAsBnD,KAA3D;AAEA,QAAMyO,QAAQ,GAAG,IAAIzR,EAAE,CAACS,IAAP,EAAjB;AACAgR,IAAAA,QAAQ,CAAC7Q,IAAT,GAAgB,SAASwG,IAAI,CAACsK,KAA9B;AACAH,IAAAA,EAAE,CAACI,QAAH,CAAYF,QAAZ;AAGA,QAAMpN,GAAG,GAAGoN,QAAQ,CAAC3E,YAAT,CAAsB9M,EAAE,CAAC+M,QAAzB,CAAZ,CAZyB,CAazB;;AACA1I,IAAAA,GAAG,CAACuN,SAAJ,GAAgB,CAAhB;AACAvN,IAAAA,GAAG,CAACwN,WAAJ,GAAkB7R,EAAE,CAAC8R,KAAH,CAASC,KAA3B;AACA1N,IAAAA,GAAG,CAACmJ,SAAJ,GAAgBxN,EAAE,CAAC8R,KAAH,CAASE,KAAT,CAAeC,IAAf,CAAoB,GAApB,CAAhB;AAEA,QAAM9B,KAAK,GAAGqB,IAAI,GAAGD,EAAE,CAACrD,MAAxB;AAEAuD,IAAAA,QAAQ,CAACzO,KAAT,GAAiBoE,IAAI,CAACjB,IAAL,CAAUnD,KAAV,GAAkBmN,KAAnC;AACAsB,IAAAA,QAAQ,CAACxO,MAAT,GAAkBmE,IAAI,CAACjB,IAAL,CAAUlD,MAAV,GAAmBkN,KAArC;AACAsB,IAAAA,QAAQ,CAAC1G,CAAT,GAAa,CAACwG,EAAE,CAACvO,KAAJ,GAAY,CAAZ,GAAgBoE,IAAI,CAACjB,IAAL,CAAU4E,CAAV,GAAcoF,KAA3C;AACAsB,IAAAA,QAAQ,CAACzG,CAAT,GAAauG,EAAE,CAACtO,MAAH,GAAY,CAAZ,GAAgBmE,IAAI,CAACjB,IAAL,CAAUlD,MAAV,GAAmBkN,KAAnC,GAA2C/I,IAAI,CAACjB,IAAL,CAAU6E,CAAV,GAAcmF,KAAtE;AAEAsB,IAAAA,QAAQ,CAACS,OAAT,GAAmBT,QAAQ,CAACU,OAAT,GAAmB,CAAtC,CAzByB,CA4BzB;;AACC9N,IAAAA,GAAG,CAAC8B,IAAJ,CAAS,CAAT,EAAY,CAAZ,EAAesL,QAAQ,CAACzO,KAAxB,EAA+ByO,QAAQ,CAACxO,MAAxC,EA7BwB,CA8BzB;;AACAoB,IAAAA,GAAG,CAACuJ,MAAJ;AACAvJ,IAAAA,GAAG,CAACsJ,IAAJ;AAEA,GAlgCO;AAogCRyD,EAAAA,MApgCQ,oBAogCC;AACR,QAAMgB,MAAM,GAAGpS,EAAE,CAACwL,IAAH,CAAQ,WAAR,CAAf;AACA4G,IAAAA,MAAM,CAACjC,KAAP,GAAe,KAAKxN,YAApB;AACA4B,IAAAA,OAAO,CAACC,GAAR,CAAY,mBAAZ,EAAiC,KAAK7B,YAAtC;AACA,GAxgCO;;AA6gCR;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAaC;AAqBAjB,EAAAA,WAAW,EAAE,IAjlCL;AAklCRC,EAAAA,YAAY,EAAE,IAllCN;AAmlCR;AACA0Q,EAAAA,SAplCQ,uBAolCI;AACX9N,IAAAA,OAAO,CAACC,GAAR,CAAY,gBAAZ;;AACA,SAAK9C,WAAL,CAAiBuH,OAAjB,CAAyB,UAAArE,EAAE,EAAI;AAC9B0N,MAAAA,YAAY,CAAC1N,EAAD,CAAZ;AACA,KAFD;;AAGA,SAAKjD,YAAL,CAAkBsH,OAAlB,CAA0B,UAAArE,EAAE,EAAI;AAC/ByB,MAAAA,aAAa,CAACzB,EAAD,CAAb;AACA,KAFD;;AAGA,SAAKoF,kBAAL,CAAwBuI,SAAxB;AACA,SAAKvI,kBAAL,CAAwBwI,IAAxB;;AACA,QAAG1Q,MAAM,CAACoG,UAAP,IAAqBpG,MAAM,CAACoG,UAAP,CAAkBqB,mBAA1C,EAA+D;AAC9D,UAAI,KAAKnB,sBAAT,EAAiC;AAChCtG,QAAAA,MAAM,CAACoG,UAAP,CAAkBqB,mBAAlB;AACA;AACD;AACD;AAnmCO,CAAT","sourceRoot":"/","sourcesContent":["import { onHomeworkFinish, RandomInt, playAudioByUrl, loadDragonBones, getSpriteFrimeByUrl, loadSpine } from \"../script/util\";\nimport { defaultData } from \"../script/defaultData\";\nimport { assign, createMachine, interpret, actions, forwardTo, matchesState } from \"../script/xstate\";\nconst { pure , send, raise, sendParent } = actions;\n\n\ncc.Class({\n\n\textends: cc.Component,\n\n\tproperties: {\n\t\t/*ant: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},\n\t\tapple: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},\n\t\tbird: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},\n\t\tcar: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},\n\t\tcat: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},\n\t\tcow: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},\n\t\tduck: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},\n\t\tegg: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},\n\t\tfarmer: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},\n\t\tfish: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},\n\t\tgirl: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},\n\t\then: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},\n\t\thouse: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},*/\n\t\trightAudio: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.AudioClip,\n\t\t},\n\t\twrongAudio: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.AudioClip,\n\t\t},\n\t\tlogoCat: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node\n\t\t}\n\n\t},\n\n\tplayAni(idx, name, options) {\n\t\tconst times = (options && options.times) || 1;\n\t\tconst cb = (options && options.callback) || null;\n\t\t// const cat = cc.find(`Canvas/frame-border/ground/${node}`);\n\t\tconst node = this._figurePointRectArray[idx].node\n\t\tvar dragonDisplay = node.getComponent(dragonBones.ArmatureDisplay);\n\n\t\tconst state = dragonDisplay.playAnimation(name, times);\n\t\t// dragonDisplay.addEventListener(dragonBones.EventObject.COMPLETE, (event) => {\n\t\t// \t//TODO 这里写触å‘事件\n\t\t// \t//event.name为事件åç§°\n\t\t// \tconsole.log(event.name)\n\t\t// }, this);\n\t\t// animationDisplay.addEventListener(dragonBones.EventObject.COMPLETE, completeCallback);\n\t\treturn state;\n\t},\n\t// 生命周期 onLoad\n\tonLoad() {\n\t\tthis._timeoutIds = [];\n\t\tthis._intervalIds = [];\n\t\tthis.initSceneData();\n\t\tthis.initSize();\n\t\twindow.ccc = this;\n\t},\n\n\t_imageResList: null,\n\t_audioResList: null,\n\t_animaResList: null,\n\n\t_lastFingerPosition: null,\n\n\t_hintsNodeList : null,\n\t_figurePointRectArray: null,\n\n\t_allAnimationNodes: null,\n\n\tinitSceneData() {\n\t\tthis._imageResList = [];\n\t\tthis._audioResList = [];\n\t\tthis._animaResList = [];\n\n\t\tthis._allAnimationNodes = [];\n\t\tthis._hintsNodeList = [];\n\t\tthis._lastFingerPosition= {\n\t\t\tpos: null,\n\t\t\tdirty: false\n\t\t};\n\t\tthis._figurePointRectArray = [];\n\t},\n\n\t_designSize: null, // 设计分辨率\n\t_frameSize: null, // å±å¹•分辨率\n\t_mapScaleMin: null, // 场景ä¸å¸¸ç”¨ç¼©æ”¾ï¼ˆå–大值)\n\t_mapScaleMax: null, // 场景ä¸å¸¸ç”¨ç¼©æ”¾ï¼ˆå–å°å€¼ï¼‰\n\t_cocosScale: null, // cocos 自缩放 (较少用到)\n\t\n\tinitSize() {\n\t\t// 注æ„cc.winSizeåªæœ‰åœ¨é€‚é…åŽ(修改fitHeight/fitWidthåŽ)æ‰èƒ½èŽ·å–到æ£ç¡®çš„值,å› æ¤ä½¿ç”¨cc.getFrameSize()æ¥èŽ·å–åˆå§‹çš„å±å¹•大å°\n\t\tlet screen_size = cc.view.getFrameSize().width / cc.view.getFrameSize().height\n\t\tlet design_size = cc.Canvas.instance.designResolution.width / cc.Canvas.instance.designResolution.height\n\t\tlet f = screen_size >= design_size\n\t\tcc.Canvas.instance.fitHeight = f\n\t\tcc.Canvas.instance.fitWidth = !f\n\n\t\tconst frameSize = cc.view.getFrameSize();\n\t\tthis._frameSize = frameSize;\n\n\t\tthis._designSize = cc.view.getDesignResolutionSize();\n\n\t\tlet sx = cc.winSize.width / frameSize.width;\n\t\tlet sy = cc.winSize.height / frameSize.height;\n\t\tthis._cocosScale = Math.min(sx, sy);\n\n\t\tsx = frameSize.width / this._designSize.width;\n\t\tsy = frameSize.height / this._designSize.height;\n\t\tthis._mapScaleMin = Math.min(sx, sy) * this._cocosScale;\n\t\tthis._mapScaleMax = Math.max(sx, sy) * this._cocosScale;\n\t},\n\tcreateStateMachine(){\n\t\tconst check = [\n\t\t\t\t\t\t\t{ target: '#game.end', cond: (ctx, evt) => {\n\t\t\t\t\t\t\t\tconsole.log('[answer NEXT] check if end', ctx.questionIndex >= ctx.questionsCount - 1);\n\t\t\t\t\t\t\t\treturn ctx.questionIndex >= ctx.questionsCount -1\n\n\t\t\t\t\t\t\t} },\n \t\t\t\t\t{ target: 'hint' } // reenter 'hint' state\n\t\t\t\t\t\t]\n\t\tconst QuestionState = {\n\t\t\tid: 'question',\n\t\t\tinitial: 'hint',\n\t\t\tstates: {\n\t\t\t\thint: {\n\t\t\t\t\tinvoke: {\n\t\t\t\t\t\tsrc: (ctx, event) => {\n\t\t\t\t\t\t\tconsole.log(`[hint] play question ${ctx.questionIndex}: ${ctx.questionPlayTimes } audio`);\n\t\t\t\t\t\t\tctx.questionPlayTimes += 1;\n\t\t\t\t\t\t\treturn new Promise((resolve,reject) => {\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tplayAudioByUrl(ctx.questions[ctx.questionIndex].audio_url, () => {\n\t\t\t\t\t\t\t\t\tconsole.log('hint finish');\n\t\t\t\t\t\t\t\t\tresolve()\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonDone: 'answer',\n\t\t\t\t\t\tonError: 'answer'\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tanswer: {\n\t\t\t\t\tafter: {\n\t\t\t\t\t\t8000: [\n \t\t\t\t\t{ \n\t\t\t\t\t\t\t\ttarget: 'wrong',\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t} // reenter 'hint' state\n\t\t\t\t\t\t]\n\t\t\t\t\t\t\n\t\t\t\t\t},\n\t\t\t\t\t\n\t\t\t\t\tinvoke: {\n\t\t\t\t\t\t\n\t\t\t\t\t\tsrc: (context, event) => (callback, onReceive) => {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tconsole.log('[answer] thinking and playing');\n\t\t\t\t\t\t\t// check every second\n\t\t\t\t\t\t\tconst id = setInterval(() => {\n\t\t\t\t\t\t\t\tconsole.log(\"aaaaaa\");\n\t\t\t\t\t\t\t\tif (!this._lastFingerPosition.dirty) {\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tconst region = context.questions[context.questionIndex];\n\t\t\t\t\t\t\t\tconst result = this.checkInRegion(region.rect);\n\t\t\t\t\t\t\t\tif (result === null) {\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tconsole.log('[Genise JS] checkInRegion' + result)\n\t\t\t\t\t\t\t\tif (result) {\n\t\t\t\t\t\t\t\t\tcallback('RIGHT')\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcallback('WRONG')\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}, 300);\n\t\t\t\t\t\t\tthis._intervalIds.push(id);\n\t\t\t\t\t\n\t\t\t\t\t\t\t// Perform cleanup\n\t\t\t\t\t\t\treturn () => clearInterval(id);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\n\t\t\t\t\t},\n\t\t\t\t\ton: {\n\t\t\t\t\t\tRIGHT: {\n\t\t\t\t\t\t\ttarget: 'right',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tWRONG: {\n\t\t\t\t\t\t\ttarget: 'wrong',\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\n\t\t\t\tright: {\n\t\t\t\t\tinvoke: {\n\t\t\t\t\t\tsrc: (context, event) => {\n\t\t\t\t\t\t\tthis._lastFingerPosition.pos = null;\n\t\t\t\t\t\t\tthis._lastFingerPosition.dirty = false;\n\t\t\t\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\t\t\t\tconsole.log('answer right');\n\t\t\t\t\t\t\t\t// this.playAni(context.questionIndex, 'normal')\n\t\t\t\t\t\t\t\tconst an = context.questions[context.questionIndex].node;\n\t\t\t\t\t\t\t\tconsole.log('in right ' + (typeof an))\n\t\t\t\t\t\t\t\tan.active = true;\n\t\t\t\t\t\t\t\tconst dragonDisplay = an.getComponent(dragonBones.ArmatureDisplay);\n\t\t\t\t\t\t\t\tdragonDisplay.playAnimation('normal', 0);\n\t\t\t\t\t\t\t\tconst ddLogoCat = this.logoCat.getComponent(dragonBones.ArmatureDisplay)\n\t\t\t\t\t\t\t\tddLogoCat.playAnimation('right', 1)\n\t\t\t\t\t\t\t\tddLogoCat.once(dragonBones.EventObject.COMPLETE, function() {\n\t\t\t\t\t\t\t\t\tthis.logoCat.getComponent(dragonBones.ArmatureDisplay).playAnimation('normal', 0)\n\t\t\t\t\t\t\t\t}, this)\n\n\t\t\t\t\t\t\t\tplayAudioByUrl(this.rightAudio, () => {\n\t\t\t\t\t\t\t\t\tresolve()\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonDone: {\n\t\t\t\t\t\t\ttarget: '#QuestionsArray.next',\n\t\t\t\t\t\t\tactions: raise('CHECK')\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonError: {\n\t\t\t\t\t\t\ttarget: '#QuestionsArray.next',\n\t\t\t\t\t\t\tactions: raise('CHECK')\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\twrong:{\n\t\t\t\t\tinvoke: {\n\t\t\t\t\t\tsrc: (context, event) => {\n\t\t\t\t\t\t\tthis._lastFingerPosition.pos = null;\n\t\t\t\t\t\t\tthis._lastFingerPosition.dirty = false;\n\t\t\t\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\t\t\t\tconsole.log('answer wrong', context.questionIndex, context.questionPlayTimes , context.maxQuestionTryTimes);\n\t\t\t\t\t\t\t\tconst ddLogoCat = this.logoCat.getComponent(dragonBones.ArmatureDisplay)\n\t\t\t\t\t\t\t\tddLogoCat.playAnimation('wrong', 1)\n\t\t\t\t\t\t\t\tddLogoCat.once(dragonBones.EventObject.COMPLETE, function() {\n\t\t\t\t\t\t\t\t\tthis.logoCat.getComponent(dragonBones.ArmatureDisplay).playAnimation('normal', 0)\n\t\t\t\t\t\t\t\t}, this);\n\t\t\t\t\t\t\t\tlet wrongEffect = this.wrongAudio;\n\t\t\t\t\t\t\t\t// 第一和第二题的æç¤ºéŸ³\n\t\t\t\t\t\t\t\tif ([0, 1].includes(context.questionIndex)) {\n\t\t\t\t\t\t\t\t\twrongEffect = this.data[`wrong_audio${context.questionPlayTimes}`]\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t// éžç¬¬ä¸€å’Œç¬¬äºŒé¢˜ï¼Œå¹¶ä¸”åšç¬¬äºŒéçš„æç¤ºéŸ³\n\t\t\t\t\t\t\t\t\tif (context.questionPlayTimes == 2) {\n\t\t\t\t\t\t\t\t\t\twrongEffect = this.data[`wrong_audio${context.questionPlayTimes}`]\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\n\t\t\t\t\t\t\t\tif (context.questionPlayTimes >= context.maxQuestionTryTimes) {\n\t\t\t\t\t\t\t\t\tconst an = context.questions[context.questionIndex].node;\n\t\t\t\t\t\t\t\t\tan.active = true;\n\n\t\t\t\t\t\t\t\t\tif (an.isSpine) {\n\n\t\t\t\t\t\t\t\t\t\tconst skeleton = an.getComponent(sp.Skeleton);\n\t\t\t\t\t\t\t\t\t\tskeleton.setToSetupPose();\n\t\t\t\t\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t\t\t\t\tskeleton.setAnimation(0, 'normal', true);\n\t\t\t\t\t\t\t\t\t\t}, 1);\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tconst dragonDisplay = an.getComponent(dragonBones.ArmatureDisplay);\n\t\t\t\t\t\t\t\t\t\tdragonDisplay.playAnimation('normal', 0);\n\t\t\t\t\t\t\t\t\t\tconsole.log('show animation', an.active);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tplayAudioByUrl(wrongEffect, () => {\n\t\t\t\t\t\t\t\t\tif (context.questionPlayTimes >= context.maxQuestionTryTimes) {\n\t\t\t\t\t\t\t\t\t\t// const an = context.questions[context.questionIndex].node;\n\t\t\t\t\t\t\t\t\t\t// an.active = true;\n\t\t\t\t\t\t\t\t\t\t// const dragonDisplay = an.getComponent(dragonBones.ArmatureDisplay);\n\t\t\t\t\t\t\t\t\t\t// dragonDisplay.playAnimation('normal', 0);\n\t\t\t\t\t\t\t\t\t\t// console.log('show animation', an.active);\n\t\t\t\t\t\t\t\t\t\treject()\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tresolve()\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonDone: {\n\t\t\t\t\t\t\ttarget: 'hint',\n\t\t\t\t\t\t\t// actions: raise('CHECK')\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonError: {\n\t\t\t\t\t\t\ttarget: '#QuestionsArray.next',\n\t\t\t\t\t\t\tactions: raise('CHECK')\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\t\tconst QuestionsArrayStatus = {\n\t\t\tid: 'QuestionsArray',\n\t\t\tinitial: 'play',\n\t\t\tstates: {\n\t\t\t\tplay: {\n\t\t\t\t\t...QuestionState\n\t\t\t\t},\n\t\t\t\tnext: {\n\t\t\t\t\ton: {\n\t\t\t\t\t\tCHECK: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttarget: '#game.end',\n\t\t\t\t\t\t\t\tcond: (ctx, evt) => {\n\t\t\t\t\t\t\t\t\tctx.questionIndex += 1;\n\t\t\t\t\t\t\t\t\tctx.questionPlayTimes = 0\n\t\t\t\t\t\t\t\t\tconsole.log('#game.end', ctx.questionIndex >= ctx.questionsCount )\n\t\t\t\t\t\t\t\t\treturn ctx.questionIndex >= ctx.questionsCount\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{target: 'play'}\n\t\t\t\t\t\t]\n\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t\n\t\tconst state = {\n\t\t\tid: 'game',\n\t\t\tinitial: 'begin',\n\t\t\tcontext: {\n\t\t\t\tquestionIndex: 0,\n\t\t\t\tquestionPlayTimes: 0,\n\t\t\t\tmaxQuestionTryTimes: 2,\n\t\t\t\tquestionsCount: this._figurePointRectArray.length,\n\t\t\t\tquestions: this._figurePointRectArray,\n\t\t\t},\n\t\t\tstates: {\n\t\t\t\tbegin: {\n\t\t\t\t\tinvoke: {\n\t\t\t\t\t\tsrc: (ctx) => {\n\t\t\t\t\t\t\tconsole.log('game begin 1');\n\t\t\t\t\t\t\tif(window.courseware && window.courseware.openOsmoFingerRead) {\n\t\t\t\t\t\t\t\tthis.isOpenedOsmoFingerRead = true;\n\t\t\t\t\t\t\t\twindow.courseware.openOsmoFingerRead({\n\t\t\t\t\t\t\t\t\t\"page_id\": 27,\n\t\t\t\t\t\t\t\t\t\"book_id\": \"opw1\"\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvar dragonDisplay = this.logoCat.getComponent(dragonBones.ArmatureDisplay);\n\t\t\t\t\t\t\tconst state = dragonDisplay.playAnimation('begin', 0);\n\t\t\t\t\t\t\treturn new Promise((resolve,reject) => {\n\t\t\t\t\t\t\t\tplayAudioByUrl(this.data.begin_audio, () => {\n\t\t\t\t\t\t\t\t\tconsole.log('game begin audio finish');\n\t\t\t\t\t\t\t\t\tresolve()\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonDone: 'guide',\n\t\t\t\t\t\tonError: 'guide'\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\n\t\t\t\tguide:{\n\t\t\t\t\tinvoke: {\n\t\t\t\t\t\tsrc: (ctx) => {\n\t\t\t\t\t\t\treturn new Promise((resolve,reject) => {\n\t\t\t\t\t\t\t\tplayAudioByUrl(this.data.guide_audio, () => {\n\t\t\t\t\t\t\t\t\tconsole.log('game guide audio finish');\n\t\t\t\t\t\t\t\t\treject()\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonDone: 'playing',\n\t\t\t\t\t\tonError: 'playing'\n\t\t\t\t\t},\n\t\t\t\t\t\n\t\t\t\t},\n\t\t\t\tplaying: {\n\t\t\t\t\tentry: (ctx) => {\n\t\t\t\t\t\tconsole.log('entry play stage');\n\t\t\t\t\t\tvar dragonDisplay = this.logoCat.getComponent(dragonBones.ArmatureDisplay);\n\t\t\t\t\t\tconst state = dragonDisplay.playAnimation('normal', 0);\n\t\t\t\t\t\tcc.assetManager.loadRemote(this.data.playing_audio, (err, audioClip) => {\n\t\t\t\t\t\t\tcc.audioEngine.playMusic(audioClip, true, 0.8);\n\t\t\t\t\t\t});\n\t\t\t\t\t\tctx.questions.forEach((block) => {\n\t\t\t\t\t\t\tblock.node.active = false;\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\texit: () => {\n\t\t\t\t\t\tconsole.log('exit play stage');\n\t\t\t\t\t\tcc.audioEngine.stopMusic();\n\t\t\t\t\t},\n\t\t\t\t\ton: {\n\t\t\t\t\t\tNEXT: 'end'\n\t\t\t\t\t},\n\t\t\t\t\t// ...QuestionsStates\n\t\t\t\t\t...QuestionsArrayStatus\n\t\t\t\t},\n\t\t\t\tend: {\n\t\t\t\t\t\tentry: (ctx, event) => {\n\t\t\t\t\t\t\tconsole.log('game end');\n\t\t\t\t\t\t\tvar dragonDisplay = this.logoCat.getComponent(dragonBones.ArmatureDisplay);\n\t\t\t\t\t\t\tconst state = dragonDisplay.playAnimation('finish', 0);\n\t\t\t\t\t\t\tif(window.courseware && window.courseware.closeOsmoFingerRead) {\n\t\t\t\t\t\t\t\tthis.isOpenedOsmoFingerRead = false;\n\t\t\t\t\t\t\t\twindow.courseware.closeOsmoFingerRead()\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tplayAudioByUrl(this.data.end_audio, () => {\n\t\t\t\t\t\t\t\tconsole.log('game finish');\n\t\t\t\t\t\t\t\tonHomeworkFinish();\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t// return new Promise((resolve,reject) => {\n\t\t\t\t\t\t\t// \tsetTimeout(() => {\n\t\t\t\t\t\t\t// \t\tconsole.log('hint finish');\n\t\t\t\t\t\t\t// \t\tresolve()\n\t\t\t\t\t\t\t// \t}, 2000)\n\t\t\t\t\t\t\t// })\n\t\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t},\n\t\t\t}\n\t\t};\n\t\tconst after = {};\n\t\tfor(let i = 0 ;i < this._hintsNodeList.length; i++) {\n\t\t\tconst t = this._hintsNodeList[i].node;\n\t\t\tconst k = this._hintsNodeList[i].after;\n\t\t\tafter[k]= {\n\t\t\t\tactions: () => {\n\n\t\t\t\t\tif (t.isSpine) {\n\n\t\t\t\t\t\tconst skeleton = t.getComponent(sp.Skeleton);\n\t\t\t\t\t\t\n\t\t\t\t\t\tskeleton.setToSetupPose();\n\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\tskeleton.setAnimation(0, 'enlarge', false);\n\t\t\t\t\t\t}, 1);\n\t\t\t\t\t\t\n\t\t\t\t\t\t// skeleton.animation = skeleton.animationNames[0];\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tconst dragonDisplay = t.getComponent(dragonBones.ArmatureDisplay);\n\t\t\t\t\t\tdragonDisplay.playAnimation('enlarge', 1);\n\t\t\t\t\t\tconsole.log(dragonDisplay._armatureKey, 'enlarge')\n\t\t\t\t\t\tdragonDisplay.addEventListener(dragonBones.EventObject.COMPLETE, (event) => {\n\t\t\t\t\t\t\t// TODO 这里写触å‘事件\n\t\t\t\t\t\t\t// event.name为事件åç§°\n\t\t\t\t\t\t\t// event.armature.animation.play('normal', 0);\n\t\t\t\t\t\t\t// console.log(event.animationState.name, dragonDisplay._armatureKey, 'end')\n\t\t\t\t\t\t}, this);\n\t\t\t\t\t}\n\n\n\n\t\t\t\t\t// const dragonDisplay = t.getComponent(dragonBones.ArmatureDisplay);\n\t\t\t\t\t// dragonDisplay.playAnimation('enlarge', 1);\n\t\t\t\t\t// console.log(dragonDisplay._armatureKey, 'enlarge')\n\t\t\t\t\t// dragonDisplay.addEventListener(dragonBones.EventObject.COMPLETE, (event) => {\n\t\t\t\t\t// \t//TODO 这里写触å‘事件\n\t\t\t\t\t// \t//event.name为事件åç§°\n\t\t\t\t\t// \tevent.armature.animation.play('normal', 0);\n\t\t\t\t\t// \tconsole.log(event.animationState.name, dragonDisplay._armatureKey, 'end')\n\t\t\t\t\t// }, this);\n\t\t\t\t} \n\t\t\t}\n\t\t}\n\t\tif (this.data.begin_sep_time) {\n\t\t\tconst t = +this.data.begin_sep_time * 1000;\n\t\t\tafter[t] = {\n\t\t\t\tactions: () => {\n\t\t\t\t\tconsole.log('game begin 2');\n\n\t\t\t\t\tfor(let i = 0 ;i < this._allAnimationNodes.length; i++) {\n\t\t\t\t\t\tconst t = this._allAnimationNodes[i];\n\t\t\t\t\t\tif (t.isSpine) {\n\n\t\t\t\t\t\t\tconst skeleton = t.getComponent(sp.Skeleton);\n\t\t\t\t\t\t\tconsole.log('skeleton: ', skeleton);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tskeleton.setToSetupPose();\n\t\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t\tskeleton.setAnimation(0, 'normal', true);\n\t\t\t\t\t\t\t}, 1);\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\tconsole.log('skeleton 22: ', skeleton);\n\n\t\t\t\t\t\t\t// skeleton.animation = skeleton.animationNames[0];\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tconst dragonDisplay = t.getComponent(dragonBones.ArmatureDisplay);\n\t\t\t\t\t\t\tdragonDisplay.playAnimation('normal', 0);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\tstate.states.begin.after = after;\n\n\n\n\t\tconst gameMachine = createMachine(state);\n\t\twindow.gameMachine = gameMachine;\n\t\tthis.gameMachineService = interpret(gameMachine).onTransition((state) => {\n\t\t// console.log(1, state.value, state.context);\n\t\t});\n\t\tthis.gameMachineService.start();\n\t\tif (window.gameMachineService) {\n\t\t\twindow.gameMachineService = gameMachineService;\n\t\t}\n\n\n\t},\n\n\t\n\n\n\n\t// 生命周期 start\n\tstart() {\n\t\tlet getData = this.getData.bind(this);\n\t\tif (window && window.courseware) {\n\t\t\tgetData = window.courseware.getData;\n\t\t}\n\n\t\tgetData((data) => {\n\t\t\t// console.log('data:', data);\n\t\t\tthis.data = data || this.getDefaultData();\n\t\t\tthis.data = JSON.parse(JSON.stringify(this.data))\n\t\t\t\n\t\t\tthis.preloadItem()\n\t\t});\n\t\twindow.air = window.air || {}\n\t\tif (window.air) {\n\t\t\twindow.air.osmoFingerReadCallback = (result) => {\n\t\t\t\tif (!this.gameMachineService) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// const st = this.gameMachineService.state.value.constructor.name == 'Object' \n\t\t\t\t// && this.gameMachineService.state.value['playing']\n\t\t\t\t// && this.gameMachineService.state.value['playing'].constructor.name == 'Object'\n\t\t\t\t// && this.gameMachineService.state.value['playing']['play']\n\t\t\t\t// && this.gameMachineService.state.value['playing']['play'] == 'answer'\n\t\t\t\t// if (st) {\n\t\t\t\t// }\n\t\t\t\tconst resultObj = JSON.parse(result);\n\t\t\t\tconsole.log('[Genise JS] '+ JSON.stringify(resultObj.finger_pos_in_page))\n\t\t\t\tconst p = resultObj.finger_pos_in_page;\n\t\t\t\tif (p.x == -1 || p.y == -1) {\n\t\t\t\t\tthis._lastFingerPosition.pos = null;\n\t\t\t\t\tthis._lastFingerPosition.dirty = false;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis._lastFingerPosition = {\n\t\t\t\t\tpos:{\n\t\t\t\t\t\tx: p.x,\n\t\t\t\t\t\ty: p.y\n\t\t\t\t\t},\n\t\t\t\t\tdirty: true\n\t\t\t\t}\n\t\t\t\tthis.debugPointer(p.x, p.y)\n\t\t\t}\n\t\t}\n\t\tthis.isDebug = false;\n\t\t\n\t},\n\tcheckInRegion(r) {\n\t\tconsole.log('r~~~: ', r);\n\t\tif (!this._lastFingerPosition && !this._lastFingerPosition.pos) {\n\t\t\treturn null;\n\t\t}\n\t\tconst p = this._lastFingerPosition ? this._lastFingerPosition.pos || {x:0, y:0} : {x:0, y:0};\n\t\tconst w = p.x > r.x && p.x < (r.x + r.width);\n\t\tconst h = p.y > r.y && p.y < (r.y + r.height);\n\t\treturn w && h;\n\n\t},\n\n\tgetData(func) {\n\t\tif (window && window.courseware) {\n\t\t\twindow.courseware.getData(func, 'scene');\n\t\t\treturn;\n\t\t}\n\n\t\tconst middleLayer = cc.find('middleLayer');\n\t\tif (middleLayer) {\n\t\t\tconst middleLayerComponent = middleLayer.getComponent('middleLayer');\n\t\t\tmiddleLayerComponent.getData(func);\n\t\t\treturn;\n\t\t}\n\n\t\tfunc(this.getDefaultData());\n\t},\n\n\tgetDefaultData() {\n\t\treturn {\"begin_audio\":\"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3\",\"begin_sep_time\":1,\"guide_audio\":\"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3\",\"playing_audio\":\"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3\",\"right_audio\":\"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3\",\"wrong_audio\":\"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3\",\"wrong_audio1\":\"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3\",\"wrong_audio2\":\"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3\",\"end_audio\":\"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3\",\"bgItem\":{\"url\":\"http://staging-teach.cdn.ireadabc.com/84ec6edc20bceaaa9dbe824092b6860d.png\",\"rect\":{\"x\":736.95,\"y\":0,\"width\":599.09,\"height\":775}},\"hotZoneItemArr\":[{\"id\":\"1659333645573\",\"index\":0,\"audio_url\":\"http://staging-teach.cdn.ireadabc.com/5a1a2670845bfe76662e86d9a3a69f81.mp3\",\"itemType\":\"rect\",\"fontScale\":1.61953125,\"imgScale\":1,\"imgSizeW\":0,\"imgSizeH\":0,\"mapScale\":1.61953125,\"dragDot\":{\"x\":1036.5,\"y\":387.5},\"gIdx\":\"1\",\"labelText\":\"1\",\"posX\":887.5,\"posY\":165.5,\"skeJsonData\":{\"url\":\"http://staging-teach.cdn.ireadabc.com/133a1f60719ed26247e35dc022d82862.json\",\"name\":\"spineboy-pro.json\"},\"texJsonData\":{\"url\":\"http://staging-teach.cdn.ireadabc.com/e0945b8265ea3b8053afb814c6b849d3.atlas\",\"name\":\"spineboy-pro.atlas\"},\"texPngData\":{\"url\":\"http://staging-teach.cdn.ireadabc.com/517553f50224915148f9efc5b7556798.png\",\"name\":\"spineboy-pro.png\"},\"animType\":\"spine\",\"rect\":{\"x\":48.05,\"y\":65.5,\"width\":205,\"height\":200}},{\"id\":\"1659334098930\",\"index\":1,\"audio_url\":\"http://staging-teach.cdn.ireadabc.com/16eb06a6beb9e4fa77c9b5d2d643ab29.mp3\",\"itemType\":\"rect\",\"fontScale\":1.61953125,\"imgScale\":1,\"imgSizeW\":0,\"imgSizeH\":0,\"mapScale\":1.61953125,\"dragDot\":{\"x\":1036.5,\"y\":387.5},\"gIdx\":\"0\",\"labelText\":\"1\",\"posX\":1212.5,\"posY\":643.5,\"skeJsonData\":{\"url\":\"http://staging-teach.cdn.ireadabc.com/679fed26daa464819d553de6331b3552.json\",\"name\":\"alien-pro.json\"},\"texJsonData\":{\"url\":\"http://staging-teach.cdn.ireadabc.com/65d8214c6b5c5d0496e17adb0408276a.atlas\",\"name\":\"alien-pro.atlas\"},\"texPngData\":{\"url\":\"http://staging-teach.cdn.ireadabc.com/a319b372899239325b90bb4ec07b4970.png\",\"name\":\"alien-pro.png\"},\"animType\":\"spine\",\"rect\":{\"x\":375.56,\"y\":543.5,\"width\":200,\"height\":200}}]}\n\t\t// return defaultData;\n\t},\n\n\tpreloadItem() {\n\t\tthis.addPreloadImage();\n\t\tthis.addPreloadAudio();\n\t\tthis.addPreloadAnima();\n\t\tthis.preload();\n\t},\n\n\n\taddPreloadImage() {\n\n\t\tthis._imageResList.push({ url: this.data.bgItem.url});\n\n\t\tfor (const q of this.data.hotZoneItemArr) {\n\t\t\tif (q.gIdx =='0') {\n\t\t\t\tthis._imageResList.push({ url: q.texPngData.url});\n\t\t\t}\n\n\t\t\tif (q.gIdx =='1') {\n\t\t\t\tthis._imageResList.push({ url: q.texPngData.url });\n\t\t\t}\n\t\t\tif (q.gIdx =='2') {\n\t\t\t\tthis._imageResList.push({ url: q.pic_url});\n\t\t\t}\n\t\t}\n\t},\n\tprepareAudioClip(url, key) {\n\t\tif (url) {\n\t\t\tcc.assetManager.loadRemote(url, (err, audioClip) => {\n\t\t\t\tif (audioClip) {\n\t\t\t\t\tthis[key] = audioClip;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t},\n\taddPreloadAudio() {\n\n\t\tthis._audioResList.push({ url: this.data.begin_audio });\n\t\t// this.prepareAudioClip(this.data.begin_audio1, 'begin_audio1')\n\t\t// this._audioResList.push({ url: this.data.begin_audio2 });\n\t\t// this.prepareAudioClip(this.data.begin_audio2, 'begin_audio2')\n\t\tthis._audioResList.push({ url: this.data.guide_audio });\n\t\tthis._audioResList.push({ url: this.data.playing_audio });\n\t\tif (this.data.wrong_audio) {\n\t\t\tthis._audioResList.push({ url: this.data.wrong_audio });\n\t\t\tthis.wrongAudio = this.data.wrong_audio\n\t\t}\n\t\tif (this.data.right_audio) {\n\t\t\tthis._audioResList.push({ url: this.data.right_audio });\n\t\t\tthis.rightAudio = this.data.right_audio\n\t\t}\n\t\tthis._audioResList.push({ url: this.data.wrong_audio1 });\n\t\tthis._audioResList.push({ url: this.data.wrong_audio2 });\n\t\tthis._audioResList.push({ url: this.data.end_audio });\n\n\n\t\tfor (const q of this.data.hotZoneItemArr) {\n\t\t\tif (q.gIdx =='0') {\n\t\t\t\tthis._audioResList.push({ url: q.audio_url });\n\t\t\t}\n\t\t}\n\t},\n\tdebugPointer() {\n\t\tconst boxDebugger = cc.find('Canvas/box-debugger');\n\t\tif (!this.isDebug) {\n\t\t\tboxDebugger.active = false;\n\t\t\treturn;\n\t\t}\n\t\tif (!this.POINTER_NODE) {\n\t\t\tthis.POINTER_NODE = new cc.Node();\n\t\t\tthis.POINTER_NODE.parent = boxDebugger;\n\t\t\tthis.POINTER_NODE.name = 'POINTER_NODE'\n\t\t\tthis.POINTER_NODE.addComponent(cc.Graphics);\n\t\t}\n\t\tconst grap = this.POINTER_NODE.getComponent(cc.Graphics);\n\t\tgrap.clear();\n\t\tconst ground = cc.find('Canvas/frame-border/ground');\n\t\tconst {width: baseW, height: baseH} = ground;\n\t\tconst {x: px, y: py} = this._lastFingerPosition.pos;\n\t\tlet x = baseW * px - baseW / 2;\n\t\tlet y = baseH - (baseH * py) - baseH / 2 - 16;\n\t\tconst pn = new cc.Node();\n\t\t\n\t\tgrap.fillColor=cc.color(255, 0, 0);\n\t\tgrap.circle(x, y, 32);\n\t\tgrap.fill();\n\t\tgrap.stroke();\n\t},\n\tdebugGraphics() {\n\t\tconst boxDebugger = cc.find('Canvas/box-debugger');\n\t\tif (!this.isDebug) {\n\t\t\tboxDebugger.active = false;\n\t\t\treturn;\n\t\t}\n\t\tboxDebugger.active = true;\n\t\tconsole.log('show debug graphics');\n\t\tconst ground = cc.find('Canvas/frame-border/ground');\n\t\tconst canvas = cc.find('Canvas');\n\t\tconst {width: baseW, height: baseH} = ground;\n\t\tconst {width: bgW, height: bgH} = this.data.bgItem.rect\n\t\tconst scaleX = bgW / baseW;\n\t\tconst scaleY = bgH / baseH;\n\t\tlet added =false\n\t\tthis.data.hotZoneItemArr.forEach(area => {\n\t\t\t\n\t\t\tif (added) {\n\t\t\t\t// return\n\t\t\t}\n\t\t\tif (area.gIdx != '0') {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tadded = true;\n\t\t\tconst dn = new cc.Node();\n\t\t\tconst lblNode = new cc.Node();\n\t\t\tlblNode.parent = dn\n\t\t\tconst lbl = lblNode.addComponent(cc.Label);\n\t\t\tlblNode.color = cc.color(0,0,0)\n\t\t\tlbl.string = area.skeJsonData.name.substring(0, area.skeJsonData.name.length - 9)\n\t\t\tdn.name = lbl.string;\n\t\t\tdn.parent = boxDebugger;\n\t\t\tdn.width = baseW;\n\t\t\tdn.height = baseH;\n\t\t\t\n\t\t\tconst grap = dn.addComponent(cc.Graphics);\n\t\t\tconst r = RandomInt(1,255)\n\t\t\tconst g = RandomInt(1,255)\n\t\t\tconst b = RandomInt(1,255)\n\t\t\tgrap.fillColor=cc.color(r, g, b, 127);\n\t\t\tconst {x: rx, y: ry, width: rw, height: rh} = area.rect;\n\t\t\tlet w = (rw / bgW) * baseW;\n\t\t\tlet h = (rh / bgH) * baseH;\n\t\t\tlet x = (rx / bgW) * baseW - baseW / 2;\n\t\t\tlet y = baseH - ((ry / bgH) * baseH) - h - baseH / 2;\n\t\t\t// w *= scaleX\n\t\t\t// h *= scaleY\n\t\t\t// x *= scaleX\n\t\t\t// y *= scaleY\n // const p = boxDebugger.convertToNodeSpaceAR(cc.v2(x,y));\n\t\t\t// x = p.x;\n\t\t\t// y = p.y;\n\t\t\tlblNode.x = x;\n\t\t\tlblNode.y = y + h;\n\t\t\t// dn.scaleX = scaleX;\n\t\t\t// dn.scaleY = scaleY;\n\t\t\t// dn.scale = area.mapScale; // minScale; // this._mapScaleMax * area.mapScale; // ;\n\t\t\tconsole.log('[debug]', area.skeJsonData.name, x, y, w, h);\n\t\t\tgrap.fillRect(x, y, w, h);\n\t\t\tgrap.stroke();\n\t\t\t\n\t\t});\n\n\t},\n\taddPreloadAnima() {\n\n\t},\n\n\tpreload() {\n\n\t\tconst preloadArr = this._imageResList.concat(this._audioResList).concat(this._animaResList);\n\t\t// console.log(preloadArr);\n\t\tcc.assetManager.loadAny(preloadArr, null, (f, t, item) => {\n\t\t\t// console.log(f, t, item)\n\t\t}, (err, data) => {\n\t\t\t// console.log(err, data);\n\t\t\tconst ground = cc.find(`Canvas/frame-border/ground`);\n\t\t\tconst groundBg = cc.find(`Canvas/frame-border/ground/bg`);\n\t\t\tgroundBg.active = false;\n\t\t\tconst baseRect = this.data.bgItem.rect;\n\t\t\tgetSpriteFrimeByUrl(this.data.bgItem.url, (sf) => {\n\t\t\t\tconst gs = groundBg.getComponent(cc.Sprite);\n\t\t\t\tgs.spriteFrame = sf;\n\t\t\t\tgroundBg.active = true;\n\n\t\t\t\tlet dbCount = 0;\n\t\t\t\tlet finishDbCount = 0\n\t\t\t\tfor(const block of this.data.hotZoneItemArr) {\n\t\t\t\t\tif (block.gIdx == '0' || block.gIdx == '1') {\n\t\t\t\t\t\tdbCount++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfor(const block of this.data.hotZoneItemArr) {\n\n\t\t\t\t\t\n\t\t\t\t\tif (block.gIdx == '2') {\n\t\t\t\t\t\tconst s1 = ((ground.width / block.imgSizeW) + (ground.height / block.imgSizeH)) / 2\n\t\t\t\t\t\tconst node = new cc.Node();\n\t\t\t\t\t\tnode.parent = ground;\n\t\t\t\t\t\tconst spr = node.addComponent(cc.Sprite);\n\t\t\t\t\t\tgetSpriteFrimeByUrl(block.pic_url, (sf) => {\n\t\t\t\t\t\tspr.spriteFrame = sf;\n\t\t\t\t\t\tnode.scale = s1;\n\t\t\t\t\t\t})\n\n\t\t\t\t\t}\n\t\t\t\t\tif (block.gIdx == '0' || block.gIdx == '1') {\n\n\t\t\t\t\t\tconst n = new cc.Node();\n\t\t\t\t\t\tn.scale = 0.25;\n\t\t\t\t\t\tn.parent = ground;\n\t\t\t\t\t\tn.active = false;\n\n\t\t\t\t\t\tif (block.animType == 'spine') {\n\t\t\t\n\t\t\t\t\t\t\tconst skeleton = n.addComponent(sp.Skeleton);\n\t\t\t\t\t\t\tn.isSpine = true;\n\n\t\t\t\t\t\t\tloadSpine(skeleton, block.texPngData.name, {\n\t\t\t\t\t\t\t\ttex: block.texPngData.url, \n\t\t\t\t\t\t\t\tatlas: block.texJsonData.url,\n\t\t\t\t\t\t\t\tske: block.skeJsonData.url,\n\t\t\t\t\t\t\t}).then(({width, height}) => {\n\t\t\t\t\t\t\t\tn.width = width;\n\t\t\t\t\t\t\t\tn.height = height;\t\n\t\t\t\t\t\t\t\tn.active = true;\n\t\t\t\t\t\t\t\t// db.playAnimation('null', 0);\n\t\t\t\t\t\t\t\t// skeleton.setToSetupPose();\n\t\t\t\t\t\t\t\tskeleton.setAnimation(0, 'enlarge', true);\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tthis._allAnimationNodes.push(n);\n\t\t\t\t\t\t\t\tfinishDbCount++;\n\t\t\t\t\t\t\t\tconsole.log(finishDbCount, dbCount)\n\t\t\t\t\t\t\t\tif (finishDbCount == dbCount) {\n\t\t\t\t\t\t\t\t\tthis.loadEnd();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}).catch(() => {\n\t\t\t\t\t\t\t\tfinishDbCount++;\n\t\t\t\t\t\t\t\tconsole.log(finishDbCount, dbCount)\n\t\t\t\t\t\t\t\tif (finishDbCount == dbCount) {\n\t\t\t\t\t\t\t\t\tthis.loadEnd();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t} else {\n\t\t\n\t\t\t\t\t\t\tconst db = n.addComponent(dragonBones.ArmatureDisplay);\n\n\t\t\t\t\t\t\tloadDragonBones(db, {\n\t\t\t\t\t\t\t\ttex: block.texPngData.url, \n\t\t\t\t\t\t\t\tatlas: block.texJsonData.url,\n\t\t\t\t\t\t\t\tske: block.skeJsonData.url,\n\t\t\t\t\t\t\t}).then(({width, height}) => {\n\t\t\t\t\t\t\t\tn.width = width;\n\t\t\t\t\t\t\t\tn.height = height;\t\n\t\t\t\t\t\t\t\tn.active = true;\n\t\t\t\t\t\t\t\tdb.playAnimation('null', 0);\n\t\t\t\t\t\t\t\tthis._allAnimationNodes.push(n);\n\t\t\t\t\t\t\t\tfinishDbCount++;\n\t\t\t\t\t\t\t\tconsole.log(finishDbCount, dbCount)\n\t\t\t\t\t\t\t\tif (finishDbCount == dbCount) {\n\t\t\t\t\t\t\t\t\tthis.loadEnd();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}).catch(() => {\n\t\t\t\t\t\t\t\tfinishDbCount++;\n\t\t\t\t\t\t\t\tconsole.log(finishDbCount, dbCount)\n\t\t\t\t\t\t\t\tif (finishDbCount == dbCount) {\n\t\t\t\t\t\t\t\t\tthis.loadEnd();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\n\t\t\t\t\t\tif (block.gIdx == '0') {\n\t\t\t\t\t\t\tconst rectInfo = {\n\t\t\t\t\t\t\t\tnode: n,\n\t\t\t\t\t\t\t\taudio_url: block.audio_url ,\n\t\t\t\t\t\t\t\trect: {\n\t\t\t\t\t\t\t\t\tx: block.rect.x / baseRect.width,\n\t\t\t\t\t\t\t\t\ty: block.rect.y / baseRect.height,\n\t\t\t\t\t\t\t\t\twidth: block.rect.width / baseRect.width,\n\t\t\t\t\t\t\t\t\theight: block.rect.height / baseRect.height,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tthis._figurePointRectArray.push(rectInfo);\n\n\t\t\t\t\t\t\t// this.addRectNodeListener(block);\n\t\t\n\t\t\t\t\t\t\tif (block.labelText) {\n\t\t\t\t\t\t\t\tconst k = +block.labelText * 1000;\n\t\t\t\t\t\t\t\tif(!isNaN(k)) {\n\t\t\t\t\t\t\t\t\tthis._hintsNodeList.push({\n\t\t\t\t\t\t\t\t\t\tnode: n,\n\t\t\t\t\t\t\t\t\t\tafter: k\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\t\n\t\t\t// console.log(this.data);\n\t\t\tconsole.log('resource perload finish');\n\n// <<<<<<< HEAD\n// =======\n// \t\t\tif (window && window[\"air\"]) {\n// \t\t\t\t// cc.find('Canvas').opacity = 0;\n// \t\t\t\twindow.air.onCourseInScreen = (next) => {\n// \t\t\t\t\t// cc.find('Canvas').opacity = 255;\n// \t\t\t\t\tthis.loadEnd();\n// \t\t\t\t\tnext();\n// \t\t\t\t}\n// \t\t\t\twindow.air.hideAirClassLoading();\n// \t\t\t} else {\n// \t\t\t\tthis.loadEnd();\n// \t\t\t}\n// >>>>>>> 2d461e1910571bcfc6ad4dc93c2cedafc20923ea\n\n\t\t\tcc.debug.setDisplayStats(false);\n\t\t});\n\t},\n\n\n\tloadEnd() {\n\t\tif (window && window[\"air\"] && window[\"air\"].hideAirClassLoading) {\n\t\t\twindow[\"air\"].hideAirClassLoading();\n\t\t}\n\t\tthis.initData();\n\t\t// this.initAudio();\n\t\t// this.initView();\n\t\tthis.initBg();\n\t\t// this.initListener();\n\t\tthis.debugGraphics();\n\t\tthis.createStateMachine();\n\t},\n\n\t_cantouch: null,\n\tinitData() {\n\t\t// 所有全局å˜é‡ 默认都是null \n\t\tthis._cantouch = true;\n\t},\n\n\t// audioBtn: null,\n\t// initAudio() {\n\t// \tconst audioNode = cc.find('Canvas/res/audio');\n\n\t// \tconst getAudioByResName = (resName) => {\n\t// \t\treturn audioNode.getChildByName(resName).getComponent(cc.AudioSource);\n\t// \t}\n\n\t// \tthis.audioBtn = getAudioByResName('btn');\n\n\t// },\n\n\n\t// initView() {\n\n\t// \t// this.initBg();\n\t// \t// this.initPic();\n\t// \t// this.initBtn();\n\t// \tthis.initIcon();\n\t// },\n\n\taddRectNodeListener(data) {\n\n\n\t\tconst bg = cc.find(`Canvas/frame-border/ground/bg`);\n\n\t\tconst rate = (bg.scale * bg.width) / this.data.bgItem.rect.width;\n\n\t\tconst rectNode = new cc.Node();\n\t\trectNode.name = 'rect' + data.index;\n\t\tbg.addChild(rectNode);\n\n\n\t\tconst ctx = rectNode.addComponent(cc.Graphics);\n\t\t// 红色矩形\n\t\tctx.lineWidth = 4;\n\t\tctx.strokeColor = cc.Color.BLACK;\n\t\tctx.fillColor = cc.Color.WHITE.setA(100);\n\n\t\tconst scale = rate / bg.scaleY;\n\n\t\trectNode.width = data.rect.width * scale;\n\t\trectNode.height = data.rect.height * scale;\n\t\trectNode.x = -bg.width / 2 + data.rect.x * scale;\n\t\trectNode.y = bg.height / 2 - data.rect.height * scale - data.rect.y * scale;\n\n\t\trectNode.anchorX = rectNode.anchorY = 0;\n\n\n\t\t// if (pageData.bgItem.isShowDebugLine) {\n\t\t\tctx.rect(0, 0, rectNode.width, rectNode.height);\n\t\t// }\n\t\tctx.stroke();\n\t\tctx.fill();\n\n\t},\n\n\tinitBg() {\n\t\tconst bgNode = cc.find('Canvas/bg');\n\t\tbgNode.scale = this._mapScaleMax;\n\t\tconsole.log('this._mapScaleMax', this._mapScaleMax);\n\t},\n\n\t\n\t\n\n\t/*initBtn() {\n\n\t\tthis.curPage = 0;\n\t\tconst bottomPart = cc.find('Canvas/bottomPart');\n\t\tbottomPart.zIndex = 5; // æé«˜å±‚级\n\n\t\tbottomPart.x = bottomPart.parent.width / 2;\n\t\tbottomPart.y = -bottomPart.parent.height / 2;\n\n\t\tconst leftBtnNode = bottomPart.getChildByName('btn_left');\n\t\t//èŠ‚ç‚¹ä¸æ·»åŠ äº†button组件 则å¯ä»¥æ·»åŠ click事件监å¬\n\t\tleftBtnNode.on('click', () => {\n\t\t\tif (!this._cantouch) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (this.curPage == 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.curPage = 0\n\t\t\tthis.leftMove();\n\n\t\t\t// 游æˆç»“æŸæ—¶éœ€è¦è°ƒç”¨è¿™ä¸ªæ–¹æ³•通知系统作业完æˆ\n\t\t\tonHomeworkFinish();\n\n\t\t\tcc.audioEngine.play(this.audioBtn.clip, false, 0.8)\n\t\t})\n\n\t\tconst rightBtnNode = bottomPart.getChildByName('btn_right');\n\t\t//èŠ‚ç‚¹ä¸æ·»åŠ äº†button组件 则å¯ä»¥æ·»åŠ click事件监å¬\n\t\trightBtnNode.on('click', () => {\n\t\t\tif (!this._cantouch) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (this.curPage == 1) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.curPage = 1\n\t\t\tthis.rightMove();\n\n\t\t\tcc.audioEngine.play(this.audioBtn.clip, false, 0.5)\n\t\t})\n\t},*/\n\n\n\n\n\t// update (dt) {},\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\t_timeoutIds: null,\n\t_intervalIds: null,\n\t// 生命周期\n\tonDestroy() {\n\t\tconsole.log('op15 onDestroy');\n\t\tthis._timeoutIds.forEach(id => {\n\t\t\tclearTimeout(id);\n\t\t});\n\t\tthis._intervalIds.forEach(id => {\n\t\t\tclearInterval(id);\n\t\t});\n\t\tthis.gameMachineService.stopChild();\n\t\tthis.gameMachineService.stop();\n\t\tif(window.courseware && window.courseware.closeOsmoFingerRead) {\n\t\t\tif (this.isOpenedOsmoFingerRead) {\n\t\t\t\twindow.courseware.closeOsmoFingerRead()\n\t\t\t}\n\t\t}\n\t},\n\n\n\n\n\n});\n"]} \ No newline at end of file +{"version":3,"sources":["assets/OP15/scene/OP15.js"],"names":["pure","actions","send","raise","sendParent","cc","Class","Component","properties","rightAudio","type","AudioClip","wrongAudio","logoCat","Node","playAni","idx","name","options","times","cb","callback","node","_figurePointRectArray","dragonDisplay","getComponent","dragonBones","ArmatureDisplay","state","playAnimation","onLoad","_timeoutIds","_intervalIds","initSceneData","initSize","window","ccc","_imageResList","_audioResList","_animaResList","_lastFingerPosition","_hintsNodeList","_allAnimationNodes","pos","dirty","_designSize","_frameSize","_mapScaleMin","_mapScaleMax","_cocosScale","screen_size","view","getFrameSize","width","height","design_size","Canvas","instance","designResolution","f","fitHeight","fitWidth","frameSize","getDesignResolutionSize","sx","winSize","sy","Math","min","max","createStateMachine","check","target","cond","ctx","evt","console","log","questionIndex","questionsCount","QuestionState","id","initial","states","hint","invoke","src","event","questionPlayTimes","Promise","resolve","reject","questions","audio_url","onDone","onError","answer","after","context","onReceive","setInterval","region","result","checkInRegion","rect","push","clearInterval","on","RIGHT","WRONG","right","an","active","isSpine","skeleton","sp","Skeleton","setToSetupPose","setTimeout","setAnimation","ddLogoCat","once","EventObject","COMPLETE","wrong","maxQuestionTryTimes","wrongEffect","includes","data","QuestionsArrayStatus","play","next","CHECK","length","begin","courseware","openOsmoFingerRead","isOpenedOsmoFingerRead","begin_audio","guide","guide_audio","playing","entry","assetManager","loadRemote","playing_audio","err","audioClip","audioEngine","playMusic","forEach","block","exit","stopMusic","NEXT","end","closeOsmoFingerRead","end_audio","i","t","k","_armatureKey","addEventListener","begin_sep_time","gameMachine","gameMachineService","onTransition","start","getData","bind","getDefaultData","JSON","parse","stringify","preloadItem","air","osmoFingerReadCallback","resultObj","finger_pos_in_page","p","x","y","debugPointer","isDebug","r","w","h","func","middleLayer","find","middleLayerComponent","addPreloadImage","addPreloadAudio","addPreloadAnima","preload","url","bgItem","hotZoneItemArr","q","gIdx","texPngData","pic_url","prepareAudioClip","key","wrong_audio","right_audio","wrong_audio1","wrong_audio2","boxDebugger","POINTER_NODE","parent","addComponent","Graphics","grap","clear","ground","baseW","baseH","px","py","pn","fillColor","color","circle","fill","stroke","debugGraphics","canvas","bgW","bgH","scaleX","scaleY","added","area","dn","lblNode","lbl","Label","string","skeJsonData","substring","g","b","rx","ry","rw","rh","fillRect","preloadArr","concat","loadAny","item","groundBg","baseRect","sf","gs","Sprite","spriteFrame","dbCount","finishDbCount","s1","imgSizeW","imgSizeH","spr","scale","n","animType","tex","atlas","texJsonData","ske","then","loadEnd","db","rectInfo","labelText","isNaN","debug","setDisplayStats","hideAirClassLoading","initData","initBg","_cantouch","addRectNodeListener","bg","rate","rectNode","index","addChild","lineWidth","strokeColor","Color","BLACK","WHITE","setA","anchorX","anchorY","Button","_x","_y","_w","_h","bgNode","onDestroy","clearTimeout","stopChild","stop"],"mappings":"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","sourceRoot":"/","sourcesContent":["import { onHomeworkFinish, RandomInt, playAudioByUrl, loadDragonBones, getSpriteFrimeByUrl, loadSpine } from \"../script/util\";\nimport { defaultData } from \"../script/defaultData\";\nimport { assign, createMachine, interpret, actions, forwardTo, matchesState } from \"../script/xstate\";\nconst { pure , send, raise, sendParent } = actions;\n\n\ncc.Class({\n\n\textends: cc.Component,\n\n\tproperties: {\n\t\t/*ant: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},\n\t\tapple: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},\n\t\tbird: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},\n\t\tcar: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},\n\t\tcat: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},\n\t\tcow: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},\n\t\tduck: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},\n\t\tegg: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},\n\t\tfarmer: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},\n\t\tfish: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},\n\t\tgirl: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},\n\t\then: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},\n\t\thouse: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},*/\n\t\trightAudio: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.AudioClip,\n\t\t},\n\t\twrongAudio: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.AudioClip,\n\t\t},\n\t\tlogoCat: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node\n\t\t}\n\n\t},\n\n\tplayAni(idx, name, options) {\n\t\tconst times = (options && options.times) || 1;\n\t\tconst cb = (options && options.callback) || null;\n\t\t// const cat = cc.find(`Canvas/frame-border/ground/${node}`);\n\t\tconst node = this._figurePointRectArray[idx].node\n\t\tvar dragonDisplay = node.getComponent(dragonBones.ArmatureDisplay);\n\n\t\tconst state = dragonDisplay.playAnimation(name, times);\n\t\t// dragonDisplay.addEventListener(dragonBones.EventObject.COMPLETE, (event) => {\n\t\t// \t//TODO 这里写触å‘事件\n\t\t// \t//event.name为事件åç§°\n\t\t// \tconsole.log(event.name)\n\t\t// }, this);\n\t\t// animationDisplay.addEventListener(dragonBones.EventObject.COMPLETE, completeCallback);\n\t\treturn state;\n\t},\n\t// 生命周期 onLoad\n\tonLoad() {\n\t\tthis._timeoutIds = [];\n\t\tthis._intervalIds = [];\n\t\tthis.initSceneData();\n\t\tthis.initSize();\n\t\twindow.ccc = this;\n\t},\n\n\t_imageResList: null,\n\t_audioResList: null,\n\t_animaResList: null,\n\n\t_lastFingerPosition: null,\n\n\t_hintsNodeList : null,\n\t_figurePointRectArray: null,\n\n\t_allAnimationNodes: null,\n\n\tinitSceneData() {\n\t\tthis._imageResList = [];\n\t\tthis._audioResList = [];\n\t\tthis._animaResList = [];\n\n\t\tthis._allAnimationNodes = [];\n\t\tthis._hintsNodeList = [];\n\t\tthis._lastFingerPosition= {\n\t\t\tpos: null,\n\t\t\tdirty: false\n\t\t};\n\t\tthis._figurePointRectArray = [];\n\t},\n\n\t_designSize: null, // 设计分辨率\n\t_frameSize: null, // å±å¹•分辨率\n\t_mapScaleMin: null, // 场景ä¸å¸¸ç”¨ç¼©æ”¾ï¼ˆå–大值)\n\t_mapScaleMax: null, // 场景ä¸å¸¸ç”¨ç¼©æ”¾ï¼ˆå–å°å€¼ï¼‰\n\t_cocosScale: null, // cocos 自缩放 (较少用到)\n\t\n\tinitSize() {\n\t\t// 注æ„cc.winSizeåªæœ‰åœ¨é€‚é…åŽ(修改fitHeight/fitWidthåŽ)æ‰èƒ½èŽ·å–到æ£ç¡®çš„值,å› æ¤ä½¿ç”¨cc.getFrameSize()æ¥èŽ·å–åˆå§‹çš„å±å¹•大å°\n\t\tlet screen_size = cc.view.getFrameSize().width / cc.view.getFrameSize().height\n\t\tlet design_size = cc.Canvas.instance.designResolution.width / cc.Canvas.instance.designResolution.height\n\t\tlet f = screen_size >= design_size\n\t\tcc.Canvas.instance.fitHeight = f\n\t\tcc.Canvas.instance.fitWidth = !f\n\n\t\tconst frameSize = cc.view.getFrameSize();\n\t\tthis._frameSize = frameSize;\n\n\t\tthis._designSize = cc.view.getDesignResolutionSize();\n\n\t\tlet sx = cc.winSize.width / frameSize.width;\n\t\tlet sy = cc.winSize.height / frameSize.height;\n\t\tthis._cocosScale = Math.min(sx, sy);\n\n\t\tsx = frameSize.width / this._designSize.width;\n\t\tsy = frameSize.height / this._designSize.height;\n\t\tthis._mapScaleMin = Math.min(sx, sy) * this._cocosScale;\n\t\tthis._mapScaleMax = Math.max(sx, sy) * this._cocosScale;\n\t},\n\tcreateStateMachine(){\n\t\tconst check = [\n\t\t\t\t\t\t\t{ target: '#game.end', cond: (ctx, evt) => {\n\t\t\t\t\t\t\t\tconsole.log('[answer NEXT] check if end', ctx.questionIndex >= ctx.questionsCount - 1);\n\t\t\t\t\t\t\t\treturn ctx.questionIndex >= ctx.questionsCount -1\n\n\t\t\t\t\t\t\t} },\n \t\t\t\t\t{ target: 'hint' } // reenter 'hint' state\n\t\t\t\t\t\t]\n\t\tconst QuestionState = {\n\t\t\tid: 'question',\n\t\t\tinitial: 'hint',\n\t\t\tstates: {\n\t\t\t\thint: {\n\t\t\t\t\tinvoke: {\n\t\t\t\t\t\tsrc: (ctx, event) => {\n\t\t\t\t\t\t\tconsole.log(`[hint] play question ${ctx.questionIndex}: ${ctx.questionPlayTimes } audio`);\n\t\t\t\t\t\t\tctx.questionPlayTimes += 1;\n\t\t\t\t\t\t\treturn new Promise((resolve,reject) => {\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tplayAudioByUrl(ctx.questions[ctx.questionIndex].audio_url, () => {\n\t\t\t\t\t\t\t\t\tconsole.log('hint finish');\n\t\t\t\t\t\t\t\t\tresolve()\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonDone: 'answer',\n\t\t\t\t\t\tonError: 'answer'\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tanswer: {\n\t\t\t\t\tafter: {\n\t\t\t\t\t\t8000: [\n \t\t\t\t\t{ \n\t\t\t\t\t\t\t\ttarget: 'wrong',\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t} // reenter 'hint' state\n\t\t\t\t\t\t]\n\t\t\t\t\t\t\n\t\t\t\t\t},\n\t\t\t\t\t\n\t\t\t\t\tinvoke: {\n\t\t\t\t\t\t\n\t\t\t\t\t\tsrc: (context, event) => (callback, onReceive) => {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tconsole.log('[answer] thinking and playing');\n\t\t\t\t\t\t\t// check every second\n\t\t\t\t\t\t\tconst id = setInterval(() => {\n\t\t\t\t\t\t\t\tif (!this._lastFingerPosition.dirty) {\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tconst region = context.questions[context.questionIndex];\n\t\t\t\t\t\t\t\tconst result = this.checkInRegion(region.rect);\n\t\t\t\t\t\t\t\tif (result === null) {\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tconsole.log('[Genise JS] checkInRegion' + result)\n\t\t\t\t\t\t\t\tif (result) {\n\t\t\t\t\t\t\t\t\tcallback('RIGHT')\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcallback('WRONG')\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}, 100);\n\t\t\t\t\t\t\tthis._intervalIds.push(id);\n\t\t\t\t\t\n\t\t\t\t\t\t\t// Perform cleanup\n\t\t\t\t\t\t\treturn () => clearInterval(id);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\n\t\t\t\t\t},\n\t\t\t\t\ton: {\n\t\t\t\t\t\tRIGHT: {\n\t\t\t\t\t\t\ttarget: 'right',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tWRONG: {\n\t\t\t\t\t\t\ttarget: 'wrong',\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\n\t\t\t\tright: {\n\t\t\t\t\tinvoke: {\n\t\t\t\t\t\tsrc: (context, event) => {\n\t\t\t\t\t\t\tthis._lastFingerPosition.pos = null;\n\t\t\t\t\t\t\tthis._lastFingerPosition.dirty = false;\n\t\t\t\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\t\t\t\tconsole.log('answer right');\n\t\t\t\t\t\t\t\t// this.playAni(context.questionIndex, 'normal')\n\t\t\t\t\t\t\t\tconst an = context.questions[context.questionIndex].node;\n\t\t\t\t\t\t\t\tconsole.log('in right ' + (typeof an))\n\t\t\t\t\t\t\t\tan.active = true;\n\n\t\t\t\t\t\t\t\tif (an.isSpine) {\n\n\t\t\t\t\t\t\t\t\tconst skeleton = an.getComponent(sp.Skeleton);\n\t\t\t\t\t\t\t\t\tskeleton.setToSetupPose();\n\t\t\t\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t\t\t\tskeleton.setAnimation(0, 'normal', true);\n\t\t\t\t\t\t\t\t\t}, 1);\n\t\t\t\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tconst dragonDisplay = an.getComponent(dragonBones.ArmatureDisplay);\n\t\t\t\t\t\t\t\t\tdragonDisplay.playAnimation('normal', 0);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tconst ddLogoCat = this.logoCat.getComponent(dragonBones.ArmatureDisplay)\n\t\t\t\t\t\t\t\tddLogoCat.playAnimation('right', 1)\n\t\t\t\t\t\t\t\tddLogoCat.once(dragonBones.EventObject.COMPLETE, function() {\n\t\t\t\t\t\t\t\t\tthis.logoCat.getComponent(dragonBones.ArmatureDisplay).playAnimation('normal', 0)\n\t\t\t\t\t\t\t\t}, this)\n\n\t\t\t\t\t\t\t\tplayAudioByUrl(this.rightAudio, () => {\n\t\t\t\t\t\t\t\t\tresolve()\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonDone: {\n\t\t\t\t\t\t\ttarget: '#QuestionsArray.next',\n\t\t\t\t\t\t\tactions: raise('CHECK')\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonError: {\n\t\t\t\t\t\t\ttarget: '#QuestionsArray.next',\n\t\t\t\t\t\t\tactions: raise('CHECK')\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\twrong:{\n\t\t\t\t\tinvoke: {\n\t\t\t\t\t\tsrc: (context, event) => {\n\t\t\t\t\t\t\tthis._lastFingerPosition.pos = null;\n\t\t\t\t\t\t\tthis._lastFingerPosition.dirty = false;\n\t\t\t\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\t\t\t\tconsole.log('answer wrong', context.questionIndex, context.questionPlayTimes , context.maxQuestionTryTimes);\n\t\t\t\t\t\t\t\tconst ddLogoCat = this.logoCat.getComponent(dragonBones.ArmatureDisplay)\n\t\t\t\t\t\t\t\tddLogoCat.playAnimation('wrong', 1)\n\t\t\t\t\t\t\t\tddLogoCat.once(dragonBones.EventObject.COMPLETE, function() {\n\t\t\t\t\t\t\t\t\tthis.logoCat.getComponent(dragonBones.ArmatureDisplay).playAnimation('normal', 0)\n\t\t\t\t\t\t\t\t}, this);\n\t\t\t\t\t\t\t\tlet wrongEffect = this.wrongAudio;\n\t\t\t\t\t\t\t\t// 第一和第二题的æç¤ºéŸ³\n\t\t\t\t\t\t\t\tif ([0, 1].includes(context.questionIndex)) {\n\t\t\t\t\t\t\t\t\twrongEffect = this.data[`wrong_audio${context.questionPlayTimes}`]\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t// éžç¬¬ä¸€å’Œç¬¬äºŒé¢˜ï¼Œå¹¶ä¸”åšç¬¬äºŒéçš„æç¤ºéŸ³\n\t\t\t\t\t\t\t\t\tif (context.questionPlayTimes == 2) {\n\t\t\t\t\t\t\t\t\t\twrongEffect = this.data[`wrong_audio${context.questionPlayTimes}`]\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\n\t\t\t\t\t\t\t\tif (context.questionPlayTimes >= context.maxQuestionTryTimes) {\n\t\t\t\t\t\t\t\t\tconst an = context.questions[context.questionIndex].node;\n\t\t\t\t\t\t\t\t\tan.active = true;\n\n\t\t\t\t\t\t\t\t\tif (an.isSpine) {\n\n\t\t\t\t\t\t\t\t\t\tconst skeleton = an.getComponent(sp.Skeleton);\n\t\t\t\t\t\t\t\t\t\tskeleton.setToSetupPose();\n\t\t\t\t\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t\t\t\t\tskeleton.setAnimation(0, 'normal', true);\n\t\t\t\t\t\t\t\t\t\t}, 1);\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tconst dragonDisplay = an.getComponent(dragonBones.ArmatureDisplay);\n\t\t\t\t\t\t\t\t\t\tdragonDisplay.playAnimation('normal', 0);\n\t\t\t\t\t\t\t\t\t\tconsole.log('show animation', an.active);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tplayAudioByUrl(wrongEffect, () => {\n\t\t\t\t\t\t\t\t\tif (context.questionPlayTimes >= context.maxQuestionTryTimes) {\n\t\t\t\t\t\t\t\t\t\t// const an = context.questions[context.questionIndex].node;\n\t\t\t\t\t\t\t\t\t\t// an.active = true;\n\t\t\t\t\t\t\t\t\t\t// const dragonDisplay = an.getComponent(dragonBones.ArmatureDisplay);\n\t\t\t\t\t\t\t\t\t\t// dragonDisplay.playAnimation('normal', 0);\n\t\t\t\t\t\t\t\t\t\t// console.log('show animation', an.active);\n\t\t\t\t\t\t\t\t\t\treject()\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tresolve()\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonDone: {\n\t\t\t\t\t\t\ttarget: 'hint',\n\t\t\t\t\t\t\t// actions: raise('CHECK')\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonError: {\n\t\t\t\t\t\t\ttarget: '#QuestionsArray.next',\n\t\t\t\t\t\t\tactions: raise('CHECK')\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\t\tconst QuestionsArrayStatus = {\n\t\t\tid: 'QuestionsArray',\n\t\t\tinitial: 'play',\n\t\t\tstates: {\n\t\t\t\tplay: {\n\t\t\t\t\t...QuestionState\n\t\t\t\t},\n\t\t\t\tnext: {\n\t\t\t\t\ton: {\n\t\t\t\t\t\tCHECK: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttarget: '#game.end',\n\t\t\t\t\t\t\t\tcond: (ctx, evt) => {\n\t\t\t\t\t\t\t\t\tctx.questionIndex += 1;\n\t\t\t\t\t\t\t\t\tctx.questionPlayTimes = 0\n\t\t\t\t\t\t\t\t\tconsole.log('#game.end', ctx.questionIndex >= ctx.questionsCount )\n\t\t\t\t\t\t\t\t\treturn ctx.questionIndex >= ctx.questionsCount\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{target: 'play'}\n\t\t\t\t\t\t]\n\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t\n\t\tconst state = {\n\t\t\tid: 'game',\n\t\t\tinitial: 'begin',\n\t\t\tcontext: {\n\t\t\t\tquestionIndex: 0,\n\t\t\t\tquestionPlayTimes: 0,\n\t\t\t\tmaxQuestionTryTimes: 2,\n\t\t\t\tquestionsCount: this._figurePointRectArray.length,\n\t\t\t\tquestions: this._figurePointRectArray,\n\t\t\t},\n\t\t\tstates: {\n\t\t\t\tbegin: {\n\t\t\t\t\tinvoke: {\n\t\t\t\t\t\tsrc: (ctx) => {\n\t\t\t\t\t\t\tconsole.log('game begin 1');\n\t\t\t\t\t\t\tif(window.courseware && window.courseware.openOsmoFingerRead) {\n\t\t\t\t\t\t\t\tthis.isOpenedOsmoFingerRead = true;\n\t\t\t\t\t\t\t\twindow.courseware.openOsmoFingerRead({\n\t\t\t\t\t\t\t\t\t\"page_id\": 27,\n\t\t\t\t\t\t\t\t\t\"book_id\": \"opw1\"\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvar dragonDisplay = this.logoCat.getComponent(dragonBones.ArmatureDisplay);\n\t\t\t\t\t\t\tconst state = dragonDisplay.playAnimation('begin', 0);\n\t\t\t\t\t\t\treturn new Promise((resolve,reject) => {\n\t\t\t\t\t\t\t\tplayAudioByUrl(this.data.begin_audio, () => {\n\t\t\t\t\t\t\t\t\tconsole.log('game begin audio finish');\n\t\t\t\t\t\t\t\t\tresolve()\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonDone: 'guide',\n\t\t\t\t\t\tonError: 'guide'\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\n\t\t\t\tguide:{\n\t\t\t\t\tinvoke: {\n\t\t\t\t\t\tsrc: (ctx) => {\n\t\t\t\t\t\t\treturn new Promise((resolve,reject) => {\n\t\t\t\t\t\t\t\tplayAudioByUrl(this.data.guide_audio, () => {\n\t\t\t\t\t\t\t\t\tconsole.log('game guide audio finish');\n\t\t\t\t\t\t\t\t\treject()\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonDone: 'playing',\n\t\t\t\t\t\tonError: 'playing'\n\t\t\t\t\t},\n\t\t\t\t\t\n\t\t\t\t},\n\t\t\t\tplaying: {\n\t\t\t\t\tentry: (ctx) => {\n\t\t\t\t\t\tconsole.log('entry play stage');\n\t\t\t\t\t\tvar dragonDisplay = this.logoCat.getComponent(dragonBones.ArmatureDisplay);\n\t\t\t\t\t\tconst state = dragonDisplay.playAnimation('normal', 0);\n\t\t\t\t\t\tcc.assetManager.loadRemote(this.data.playing_audio, (err, audioClip) => {\n\t\t\t\t\t\t\tcc.audioEngine.playMusic(audioClip, true, 0.8);\n\t\t\t\t\t\t});\n\t\t\t\t\t\tctx.questions.forEach((block) => {\n\t\t\t\t\t\t\tblock.node.active = false;\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\texit: () => {\n\t\t\t\t\t\tconsole.log('exit play stage');\n\t\t\t\t\t\tcc.audioEngine.stopMusic();\n\t\t\t\t\t},\n\t\t\t\t\ton: {\n\t\t\t\t\t\tNEXT: 'end'\n\t\t\t\t\t},\n\t\t\t\t\t// ...QuestionsStates\n\t\t\t\t\t...QuestionsArrayStatus\n\t\t\t\t},\n\t\t\t\tend: {\n\t\t\t\t\t\tentry: (ctx, event) => {\n\t\t\t\t\t\t\tconsole.log('game end');\n\t\t\t\t\t\t\tvar dragonDisplay = this.logoCat.getComponent(dragonBones.ArmatureDisplay);\n\t\t\t\t\t\t\tconst state = dragonDisplay.playAnimation('finish', 0);\n\t\t\t\t\t\t\tif(window.courseware && window.courseware.closeOsmoFingerRead) {\n\t\t\t\t\t\t\t\tthis.isOpenedOsmoFingerRead = false;\n\t\t\t\t\t\t\t\twindow.courseware.closeOsmoFingerRead()\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tplayAudioByUrl(this.data.end_audio, () => {\n\t\t\t\t\t\t\t\tconsole.log('game finish');\n\t\t\t\t\t\t\t\tonHomeworkFinish();\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t// return new Promise((resolve,reject) => {\n\t\t\t\t\t\t\t// \tsetTimeout(() => {\n\t\t\t\t\t\t\t// \t\tconsole.log('hint finish');\n\t\t\t\t\t\t\t// \t\tresolve()\n\t\t\t\t\t\t\t// \t}, 2000)\n\t\t\t\t\t\t\t// })\n\t\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t},\n\t\t\t}\n\t\t};\n\t\tconst after = {};\n\t\tfor(let i = 0 ;i < this._hintsNodeList.length; i++) {\n\t\t\tconst t = this._hintsNodeList[i].node;\n\t\t\tconst k = this._hintsNodeList[i].after;\n\t\t\tafter[k]= {\n\t\t\t\tactions: () => {\n\n\t\t\t\t\tif (t.isSpine) {\n\n\t\t\t\t\t\tconst skeleton = t.getComponent(sp.Skeleton);\n\t\t\t\t\t\t\n\t\t\t\t\t\tskeleton.setToSetupPose();\n\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\tskeleton.setAnimation(0, 'enlarge', false);\n\t\t\t\t\t\t}, 1);\n\t\t\t\t\t\t\n\t\t\t\t\t\t// skeleton.animation = skeleton.animationNames[0];\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tconst dragonDisplay = t.getComponent(dragonBones.ArmatureDisplay);\n\t\t\t\t\t\tdragonDisplay.playAnimation('enlarge', 1);\n\t\t\t\t\t\tconsole.log(dragonDisplay._armatureKey, 'enlarge')\n\t\t\t\t\t\tdragonDisplay.addEventListener(dragonBones.EventObject.COMPLETE, (event) => {\n\t\t\t\t\t\t\t// TODO 这里写触å‘事件\n\t\t\t\t\t\t\t// event.name为事件åç§°\n\t\t\t\t\t\t\t// event.armature.animation.play('normal', 0);\n\t\t\t\t\t\t\t// console.log(event.animationState.name, dragonDisplay._armatureKey, 'end')\n\t\t\t\t\t\t}, this);\n\t\t\t\t\t}\n\n\n\n\t\t\t\t\t// const dragonDisplay = t.getComponent(dragonBones.ArmatureDisplay);\n\t\t\t\t\t// dragonDisplay.playAnimation('enlarge', 1);\n\t\t\t\t\t// console.log(dragonDisplay._armatureKey, 'enlarge')\n\t\t\t\t\t// dragonDisplay.addEventListener(dragonBones.EventObject.COMPLETE, (event) => {\n\t\t\t\t\t// \t//TODO 这里写触å‘事件\n\t\t\t\t\t// \t//event.name为事件åç§°\n\t\t\t\t\t// \tevent.armature.animation.play('normal', 0);\n\t\t\t\t\t// \tconsole.log(event.animationState.name, dragonDisplay._armatureKey, 'end')\n\t\t\t\t\t// }, this);\n\t\t\t\t} \n\t\t\t}\n\t\t}\n\t\tif (this.data.begin_sep_time) {\n\t\t\tconst t = +this.data.begin_sep_time * 1000;\n\t\t\tafter[t] = {\n\t\t\t\tactions: () => {\n\t\t\t\t\tconsole.log('game begin 2');\n\n\t\t\t\t\tfor(let i = 0 ;i < this._allAnimationNodes.length; i++) {\n\t\t\t\t\t\tconst t = this._allAnimationNodes[i];\n\t\t\t\t\t\tif (t.isSpine) {\n\n\t\t\t\t\t\t\tconst skeleton = t.getComponent(sp.Skeleton);\n\t\t\t\t\t\t\tconsole.log('skeleton: ', skeleton);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tskeleton.setToSetupPose();\n\t\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t\tskeleton.setAnimation(0, 'normal', true);\n\t\t\t\t\t\t\t}, 1);\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\tconsole.log('skeleton 22: ', skeleton);\n\n\t\t\t\t\t\t\t// skeleton.animation = skeleton.animationNames[0];\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tconst dragonDisplay = t.getComponent(dragonBones.ArmatureDisplay);\n\t\t\t\t\t\t\tdragonDisplay.playAnimation('normal', 0);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\tstate.states.begin.after = after;\n\n\n\n\t\tconst gameMachine = createMachine(state);\n\t\twindow.gameMachine = gameMachine;\n\t\tthis.gameMachineService = interpret(gameMachine).onTransition((state) => {\n\t\t// console.log(1, state.value, state.context);\n\t\t});\n\t\tthis.gameMachineService.start();\n\t\tif (window.gameMachineService) {\n\t\t\twindow.gameMachineService = gameMachineService;\n\t\t}\n\n\n\t},\n\n\t\n\n\n\n\t// 生命周期 start\n\tstart() {\n\t\tlet getData = this.getData.bind(this);\n\t\tif (window && window.courseware) {\n\t\t\tgetData = window.courseware.getData;\n\t\t}\n\n\t\tgetData((data) => {\n\t\t\t// console.log('data:', data);\n\t\t\tthis.data = data || this.getDefaultData();\n\t\t\tthis.data = JSON.parse(JSON.stringify(this.data))\n\t\t\t\n\t\t\tthis.preloadItem()\n\t\t});\n\t\twindow.air = window.air || {}\n\t\tif (window.air) {\n\t\t\twindow.air.osmoFingerReadCallback = (result) => {\n\t\t\t\tif (!this.gameMachineService) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// const st = this.gameMachineService.state.value.constructor.name == 'Object' \n\t\t\t\t// && this.gameMachineService.state.value['playing']\n\t\t\t\t// && this.gameMachineService.state.value['playing'].constructor.name == 'Object'\n\t\t\t\t// && this.gameMachineService.state.value['playing']['play']\n\t\t\t\t// && this.gameMachineService.state.value['playing']['play'] == 'answer'\n\t\t\t\t// if (st) {\n\t\t\t\t// }\n\t\t\t\tconst resultObj = JSON.parse(result);\n\t\t\t\tconsole.log('[Genise JS] '+ JSON.stringify(resultObj.finger_pos_in_page))\n\t\t\t\tconst p = resultObj.finger_pos_in_page;\n\t\t\t\tif (p.x == -1 || p.y == -1) {\n\t\t\t\t\tthis._lastFingerPosition.pos = null;\n\t\t\t\t\tthis._lastFingerPosition.dirty = false;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis._lastFingerPosition = {\n\t\t\t\t\tpos:{\n\t\t\t\t\t\tx: p.x,\n\t\t\t\t\t\ty: p.y\n\t\t\t\t\t},\n\t\t\t\t\tdirty: true\n\t\t\t\t}\n\t\t\t\tthis.debugPointer(p.x, p.y)\n\t\t\t}\n\t\t}\n\t\tthis.isDebug = false;\n\t\t\n\t},\n\tcheckInRegion(r) {\n\t\tif (!this._lastFingerPosition && !this._lastFingerPosition.pos) {\n\t\t\treturn null;\n\t\t}\n\t\tconst p = this._lastFingerPosition ? this._lastFingerPosition.pos || {x:0, y:0} : {x:0, y:0};\n\n\t\tconsole.log('~p: ', p);\n\t\tconsole.log('~r: ', r);\n\n\t\tconst w = p.x > r.x && p.x < (r.x + r.width);\n\t\tconst h = p.y > r.y && p.y < (r.y + r.height);\n\t\treturn w && h;\n\n\t},\n\n\tgetData(func) {\n\t\tif (window && window.courseware) {\n\t\t\twindow.courseware.getData(func, 'scene');\n\t\t\treturn;\n\t\t}\n\n\t\tconst middleLayer = cc.find('middleLayer');\n\t\tif (middleLayer) {\n\t\t\tconst middleLayerComponent = middleLayer.getComponent('middleLayer');\n\t\t\tmiddleLayerComponent.getData(func);\n\t\t\treturn;\n\t\t}\n\n\t\tfunc(this.getDefaultData());\n\t},\n\n\tgetDefaultData() {\n\t\treturn {\"begin_audio\":\"https://teach.cdn.ireadabc.com/9be46c9adb540ed8a60763f1e657ccb7.mp3\",\"begin_sep_time\":66,\"guide_audio\":\"https://teach.cdn.ireadabc.com/9523c8ed45faee686363dd157b0d7426.mp3\",\"playing_audio\":\"https://teach.cdn.ireadabc.com/d6a953052a6f80549730cb4307c55719.mp3\",\"right_audio\":\"https://teach.cdn.ireadabc.com/43791fc418e666df5e9ec1b7bf936409.mp3\",\"wrong_audio\":\"https://teach.cdn.ireadabc.com/7dd85f025a132c2eef8daee38d900287.mp3\",\"wrong_audio1\":\"https://teach.cdn.ireadabc.com/a76afb06af0799bf538e38f9f80a2261.mp3\",\"wrong_audio2\":\"https://teach.cdn.ireadabc.com/daee88b6f2eadd78b60436eedffcae08.mp3\",\"end_audio\":\"https://teach.cdn.ireadabc.com/9c1e87b3c184b06e14e44bb058b9804e.mp3\",\"bgItem\":{\"url\":\"https://teach.cdn.ireadabc.com/16b6dacd8e6c1ce6da16f500a66b366b.jpg\",\"rect\":{\"x\":319.68,\"y\":0,\"width\":257.64,\"height\":342}},\"hotZoneItemArr\":[{\"id\":\"1650544807877\",\"index\":0,\"itemType\":\"pic\",\"fontScale\":0.70078125,\"imgScale\":1,\"imgSizeW\":0,\"imgSizeH\":0,\"mapScale\":0.70078125,\"dragDot\":{\"x\":448.5,\"y\":176.65207877461702},\"gIdx\":\"1\",\"skeJsonData\":{\"url\":\"https://teach.cdn.ireadabc.com/66c7c0847c33f7f95cb0035fe14c4405.json\",\"name\":\"monkey_ske.json\"},\"texJsonData\":{\"url\":\"https://teach.cdn.ireadabc.com/98a8272cd2d97047b090ff10e948b978.json\",\"name\":\"monkey_tex.json\"},\"texPngData\":{\"url\":\"https://teach.cdn.ireadabc.com/c35ced408ad68a52c4ec5375373d3627.png\",\"name\":\"monkey_tex.png\"},\"rect\":{\"x\":128.83,\"y\":171,\"width\":0,\"height\":0}},{\"id\":\"1650546079000\",\"index\":1,\"audio_url\":\"https://teach.cdn.ireadabc.com/f9edc84a669688c5abddd55e2aab015d.mp3\",\"itemType\":\"rect\",\"fontScale\":0.70078125,\"imgScale\":1,\"imgSizeW\":0,\"imgSizeH\":0,\"mapScale\":0.70078125,\"dragDot\":{\"x\":448.5,\"y\":170.54984583761566},\"gIdx\":\"0\",\"labelText\":\"21.3\",\"posX\":692.4127500193598,\"posY\":218.14695959185556,\"skeJsonData\":{\"url\":\"https://teach.cdn.ireadabc.com/e3c67a25dd3bb34fe113e126e6e1cc81.json\",\"name\":\"ox_ske.json\"},\"texJsonData\":{\"url\":\"https://teach.cdn.ireadabc.com/81d487bf31d3a4d0f25f44c184ba9233.json\",\"name\":\"ox_tex.json\"},\"texPngData\":{\"url\":\"https://teach.cdn.ireadabc.com/e199392b52a735f6e37a6815ec3bb10e.png\",\"name\":\"ox_tex.png\"},\"rect\":{\"x\":159.34,\"y\":138.66,\"width\":38.83,\"height\":38.83}},{\"id\":\"1650546232189\",\"index\":2,\"itemType\":\"rect\",\"fontScale\":0.70078125,\"imgScale\":1,\"imgSizeW\":0,\"imgSizeH\":0,\"mapScale\":0.70078125,\"dragDot\":{\"x\":448.5,\"y\":170.54984583761566},\"gIdx\":\"1\",\"skeJsonData\":{\"url\":\"https://teach.cdn.ireadabc.com/0a3ea93c62ff4087859ed587020c53b5.json\",\"name\":\"car_ske.json\"},\"texJsonData\":{\"url\":\"https://teach.cdn.ireadabc.com/6000e4fbbb95f545afa5456c64d8c7d1.json\",\"name\":\"car_tex.json\"},\"texPngData\":{\"url\":\"https://teach.cdn.ireadabc.com/75e9972c15d2a67deedf60d448fd4e69.png\",\"name\":\"car_tex.png\"},\"rect\":{\"x\":36.4,\"y\":78.56,\"width\":184.87,\"height\":184.87}},{\"id\":\"1650546321127\",\"index\":3,\"itemType\":\"rect\",\"fontScale\":0.70078125,\"imgScale\":1,\"imgSizeW\":0,\"imgSizeH\":0,\"mapScale\":0.70078125,\"dragDot\":{\"x\":448.5,\"y\":170.54984583761566},\"gIdx\":\"1\",\"skeJsonData\":{\"url\":\"https://teach.cdn.ireadabc.com/d4c1e1abcf3d8f5415747fd2599b8a8c.json\",\"name\":\"Chair_ske.json\"},\"texJsonData\":{\"url\":\"https://teach.cdn.ireadabc.com/1d7254eb7fa3008e8178347bb944cdcb.json\",\"name\":\"Chair_tex.json\"},\"texPngData\":{\"url\":\"https://teach.cdn.ireadabc.com/48e85e8ff384eed72dfe865fc981e18c.png\",\"name\":\"Chair_tex.png\"},\"rect\":{\"x\":36.4,\"y\":78.56,\"width\":184.87,\"height\":184.87}},{\"id\":\"1650546335240\",\"index\":4,\"audio_url\":\"https://teach.cdn.ireadabc.com/6182d46bad09fccb8934217d33557204.mp3\",\"itemType\":\"rect\",\"fontScale\":0.70078125,\"imgScale\":1,\"imgSizeW\":0,\"imgSizeH\":0,\"mapScale\":0.70078125,\"dragDot\":{\"x\":448.5,\"y\":170.54984583761566},\"gIdx\":\"0\",\"labelText\":\"53\",\"posX\":452.5,\"posY\":129,\"skeJsonData\":{\"url\":\"https://teach.cdn.ireadabc.com/b462d80c21aa75995dd99f0f43ccf1e6.json\",\"name\":\"quilt_ske.json\"},\"texJsonData\":{\"url\":\"https://teach.cdn.ireadabc.com/866c9e2987870947fc63bce108ef157a.json\",\"name\":\"quilt_tex.json\"},\"texPngData\":{\"url\":\"https://teach.cdn.ireadabc.com/d952c37f40c3cf07e024edfd4416423e.png\",\"name\":\"quilt_tex.png\"},\"rect\":{\"x\":71.99,\"y\":100.75,\"width\":50.83,\"height\":36.97}},{\"id\":\"1650546644333\",\"index\":5,\"itemType\":\"rect\",\"fontScale\":0.70078125,\"imgScale\":1,\"imgSizeW\":0,\"imgSizeH\":0,\"mapScale\":0.70078125,\"dragDot\":{\"x\":448.5,\"y\":170.54984583761566},\"gIdx\":\"1\",\"skeJsonData\":{\"url\":\"https://teach.cdn.ireadabc.com/6b8a1a7b0fd23686ea60465279cd4da0.json\",\"name\":\"robot_ske.json\"},\"texJsonData\":{\"url\":\"https://teach.cdn.ireadabc.com/31a74ed95fe48adab00702675811c3a8.json\",\"name\":\"robot_tex.json\"},\"texPngData\":{\"url\":\"https://teach.cdn.ireadabc.com/e57052537d89356b0a79d8cb77980219.png\",\"name\":\"robot_tex.png\"},\"rect\":{\"x\":36.4,\"y\":78.56,\"width\":184.87,\"height\":184.87}},{\"id\":\"1650546658697\",\"index\":6,\"itemType\":\"rect\",\"fontScale\":0.70078125,\"imgScale\":1,\"imgSizeW\":0,\"imgSizeH\":0,\"mapScale\":0.70078125,\"dragDot\":{\"x\":448.5,\"y\":170.54984583761566},\"gIdx\":\"1\",\"skeJsonData\":{\"url\":\"https://teach.cdn.ireadabc.com/bf3616060460439eeb3fd5227370e15a.json\",\"name\":\"panda_ske.json\"},\"texJsonData\":{\"url\":\"https://teach.cdn.ireadabc.com/2dafeb25c973c910035ff7ed1a6a6334.json\",\"name\":\"panda_tex.json\"},\"texPngData\":{\"url\":\"https://teach.cdn.ireadabc.com/75d90b05345fa470285ac488cb205cfd.png\",\"name\":\"panda_tex.png\"},\"rect\":{\"x\":36.4,\"y\":78.56,\"width\":184.87,\"height\":184.87}},{\"id\":\"1650546672448\",\"index\":7,\"itemType\":\"rect\",\"fontScale\":0.70078125,\"imgScale\":1,\"imgSizeW\":0,\"imgSizeH\":0,\"mapScale\":0.70078125,\"dragDot\":{\"x\":448.5,\"y\":170.54984583761566},\"gIdx\":\"1\",\"skeJsonData\":{\"url\":\"https://teach.cdn.ireadabc.com/5feff811b0117dd8e67973072e60d310.json\",\"name\":\"queen_1_ske.json\"},\"texJsonData\":{\"url\":\"https://teach.cdn.ireadabc.com/bb5856b92b09c5fe7a1da00bb68134ca.json\",\"name\":\"queen_1_tex.json\"},\"texPngData\":{\"url\":\"https://teach.cdn.ireadabc.com/f4e5a138b086ef3dcfa57432543b66e9.png\",\"name\":\"queen_1_tex.png\"},\"animType\":\"dragonBone\",\"rect\":{\"x\":36.4,\"y\":78.56,\"width\":184.87,\"height\":184.87}},{\"id\":\"1650546687069\",\"index\":8,\"audio_url\":\"https://teach.cdn.ireadabc.com/301858df7b07e661426a006acb26059c.mp3\",\"itemType\":\"rect\",\"fontScale\":0.70078125,\"imgScale\":1,\"imgSizeW\":0,\"imgSizeH\":0,\"mapScale\":0.70078125,\"dragDot\":{\"x\":448.5,\"y\":170.54984583761566},\"gIdx\":\"0\",\"labelText\":\"42.5\",\"posX\":512.3883524629834,\"posY\":259.83617125849,\"skeJsonData\":{\"url\":\"https://teach.cdn.ireadabc.com/f3a8efcd1850ee8a6cee89a18e86dc4a.json\",\"name\":\"milk_ske.json\"},\"texJsonData\":{\"url\":\"https://teach.cdn.ireadabc.com/73b05f19d419bd3ac17c2b92dab88423.json\",\"name\":\"milk_tex.json\"},\"texPngData\":{\"url\":\"https://teach.cdn.ireadabc.com/e38375da46f85a23202d5cbc812d62e4.png\",\"name\":\"milk_tex.png\"},\"rect\":{\"x\":37.72,\"y\":168.1,\"width\":21.17,\"height\":40.34}},{\"id\":\"1650547060490\",\"index\":9,\"audio_url\":\"https://teach.cdn.ireadabc.com/05e5b29aeffa4ef94bcc5b23167aec90.mp3\",\"itemType\":\"rect\",\"fontScale\":0.70078125,\"imgScale\":1,\"imgSizeW\":0,\"imgSizeH\":0,\"mapScale\":0.70078125,\"dragDot\":{\"x\":448.5,\"y\":170.54984583761566},\"gIdx\":\"0\",\"labelText\":\"47.7\",\"posX\":483.22135734006736,\"posY\":245.38039407076505,\"skeJsonData\":{\"url\":\"https://teach.cdn.ireadabc.com/99a6e6d9361eca7e51ed34ca2e0fd017.json\",\"name\":\"bird_ske.json\"},\"texJsonData\":{\"url\":\"https://teach.cdn.ireadabc.com/6a379ddbe6df1806368c43c8ee82332d.json\",\"name\":\"bird_tex.json\"},\"texPngData\":{\"url\":\"https://teach.cdn.ireadabc.com/cf04c63104d89511902578944061f980.png\",\"name\":\"bird_tex.png\"},\"rect\":{\"x\":17.91,\"y\":140.83,\"width\":18.52,\"height\":73.95}},{\"id\":\"1650547373869\",\"index\":10,\"itemType\":\"rect\",\"fontScale\":0.70078125,\"imgScale\":1,\"imgSizeW\":0,\"imgSizeH\":0,\"mapScale\":0.70078125,\"dragDot\":{\"x\":448.5,\"y\":170.54984583761566},\"gIdx\":\"1\",\"labelText\":\"60\",\"posX\":420.5,\"posY\":295,\"skeJsonData\":{\"url\":\"https://teach.cdn.ireadabc.com/7ebc28f3f339b16ca48d20f2a3eb44c1.json\",\"name\":\"alligator_ske.json\"},\"texJsonData\":{\"url\":\"https://teach.cdn.ireadabc.com/b04e8206fd217bd22dcdac1008393317.json\",\"name\":\"alligator_tex.json\"},\"texPngData\":{\"url\":\"https://teach.cdn.ireadabc.com/b3990d94612bd3d6e25cf200f85e4334.png\",\"name\":\"alligator_tex.png\"},\"rect\":{\"x\":16.06,\"y\":229.24,\"width\":103.52,\"height\":86.89}},{\"id\":\"1650547482398\",\"index\":11,\"itemType\":\"rect\",\"fontScale\":0.70078125,\"imgScale\":1,\"imgSizeW\":0,\"imgSizeH\":0,\"mapScale\":0.70078125,\"dragDot\":{\"x\":448.5,\"y\":170.54984583761566},\"gIdx\":\"1\",\"skeJsonData\":{\"url\":\"https://teach.cdn.ireadabc.com/a19f2ed7c297c70c639e54e969d64593.json\",\"name\":\"rabbit_ske.json\"},\"texJsonData\":{\"url\":\"https://teach.cdn.ireadabc.com/4b4f8189cf79fadd7e6533ad84db96be.json\",\"name\":\"rabbit_tex.json\"},\"texPngData\":{\"url\":\"https://teach.cdn.ireadabc.com/8f953c861eac94e4e22a8e4ec3eb56b5.png\",\"name\":\"rabbit_tex.png\"},\"rect\":{\"x\":36.4,\"y\":78.56,\"width\":184.87,\"height\":184.87}},{\"id\":\"1650547496232\",\"index\":12,\"itemType\":\"rect\",\"fontScale\":0.70078125,\"imgScale\":1,\"imgSizeW\":0,\"imgSizeH\":0,\"mapScale\":0.70078125,\"dragDot\":{\"x\":448.5,\"y\":170.54984583761566},\"gIdx\":\"1\",\"skeJsonData\":{\"url\":\"https://teach.cdn.ireadabc.com/89e0fc6085c294866142803b4ff267ba.json\",\"name\":\"King_ske.json\"},\"texJsonData\":{\"url\":\"https://teach.cdn.ireadabc.com/d6cfd2d9cd2cd9aff09ab7f03e287421.json\",\"name\":\"King_tex.json\"},\"texPngData\":{\"url\":\"https://teach.cdn.ireadabc.com/8c02c3561a2eea0423cb1102200e76f9.png\",\"name\":\"King_tex.png\"},\"rect\":{\"x\":36.4,\"y\":78.56,\"width\":184.87,\"height\":184.87}},{\"id\":\"1650547510648\",\"index\":13,\"audio_url\":\"https://teach.cdn.ireadabc.com/717ee9713b18d32d38ee089c0abc85ea.mp3\",\"itemType\":\"rect\",\"fontScale\":0.70078125,\"imgScale\":1,\"imgSizeW\":0,\"imgSizeH\":0,\"mapScale\":0.70078125,\"dragDot\":{\"x\":448.5,\"y\":170.54984583761566},\"gIdx\":\"0\",\"labelText\":\"10.2\",\"posX\":641.6680134951944,\"posY\":288.93672702541255,\"skeJsonData\":{\"url\":\"https://teach.cdn.ireadabc.com/3b7113ebdedcae54be6d0b9633875b88.json\",\"name\":\"net_ske.json\"},\"texJsonData\":{\"url\":\"https://teach.cdn.ireadabc.com/fc810762f1f2025585e722e43e94137b.json\",\"name\":\"net_tex.json\"},\"texPngData\":{\"url\":\"https://teach.cdn.ireadabc.com/5c90820da4f559280fee4579e8db2dbc.png\",\"name\":\"net_tex.png\"},\"rect\":{\"x\":123.03,\"y\":183.02,\"width\":37.9,\"height\":52.68}},{\"id\":\"1650547555018\",\"index\":14,\"itemType\":\"rect\",\"fontScale\":0.70078125,\"imgScale\":1,\"imgSizeW\":0,\"imgSizeH\":0,\"mapScale\":0.70078125,\"dragDot\":{\"x\":448.5,\"y\":170.54984583761566},\"gIdx\":\"1\",\"skeJsonData\":{\"url\":\"https://teach.cdn.ireadabc.com/0a5c8df5a23aca7a7540b87340c7608f.json\",\"name\":\"ostrich_ske.json\"},\"texJsonData\":{\"url\":\"https://teach.cdn.ireadabc.com/2478573c91d1a83fa038e7f6a9db8a85.json\",\"name\":\"ostrich_tex.json\"},\"texPngData\":{\"url\":\"https://teach.cdn.ireadabc.com/4619ace67e5770e1fd7fc3ff76e7263e.png\",\"name\":\"ostrich_tex.png\"},\"rect\":{\"x\":36.4,\"y\":78.56,\"width\":184.87,\"height\":184.87}},{\"id\":\"1650547573305\",\"index\":15,\"audio_url\":\"https://teach.cdn.ireadabc.com/b7bc161c3a3ee143a53058691abf4fa9.mp3\",\"itemType\":\"rect\",\"fontScale\":0.70078125,\"imgScale\":1,\"imgSizeW\":0,\"imgSizeH\":0,\"mapScale\":0.70078125,\"dragDot\":{\"x\":448.5,\"y\":170.54984583761566},\"gIdx\":\"0\",\"labelText\":\"15.9\",\"posX\":670.8119839772754,\"posY\":137.87940870201697,\"skeJsonData\":{\"url\":\"https://teach.cdn.ireadabc.com/91e8ca03d1df89e4ec2404421d4c692f.json\",\"name\":\"durazno_ske.json\"},\"texJsonData\":{\"url\":\"https://teach.cdn.ireadabc.com/32d259b0194370625f8fe94b1ddc0a85.json\",\"name\":\"durazno_tex.json\"},\"texPngData\":{\"url\":\"https://teach.cdn.ireadabc.com/8eef56b20e221a36fce1d672199859ff.png\",\"name\":\"durazno_tex.png\"},\"rect\":{\"x\":146.92,\"y\":83.73,\"width\":32.34,\"height\":32.34}}]}\n\t\t// return {\"begin_audio\":\"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3\",\"begin_sep_time\":1,\"guide_audio\":\"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3\",\"playing_audio\":\"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3\",\"right_audio\":\"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3\",\"wrong_audio\":\"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3\",\"wrong_audio1\":\"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3\",\"wrong_audio2\":\"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3\",\"end_audio\":\"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3\",\"bgItem\":{\"url\":\"http://staging-teach.cdn.ireadabc.com/84ec6edc20bceaaa9dbe824092b6860d.png\",\"rect\":{\"x\":736.95,\"y\":0,\"width\":599.09,\"height\":775}},\"hotZoneItemArr\":[{\"id\":\"1659333645573\",\"index\":0,\"audio_url\":\"http://staging-teach.cdn.ireadabc.com/5a1a2670845bfe76662e86d9a3a69f81.mp3\",\"itemType\":\"rect\",\"fontScale\":1.61953125,\"imgScale\":1,\"imgSizeW\":0,\"imgSizeH\":0,\"mapScale\":1.61953125,\"dragDot\":{\"x\":1036.5,\"y\":387.5},\"gIdx\":\"1\",\"labelText\":\"1\",\"posX\":887.5,\"posY\":165.5,\"skeJsonData\":{\"url\":\"http://staging-teach.cdn.ireadabc.com/133a1f60719ed26247e35dc022d82862.json\",\"name\":\"spineboy-pro.json\"},\"texJsonData\":{\"url\":\"http://staging-teach.cdn.ireadabc.com/e0945b8265ea3b8053afb814c6b849d3.atlas\",\"name\":\"spineboy-pro.atlas\"},\"texPngData\":{\"url\":\"http://staging-teach.cdn.ireadabc.com/517553f50224915148f9efc5b7556798.png\",\"name\":\"spineboy-pro.png\"},\"animType\":\"spine\",\"rect\":{\"x\":48.05,\"y\":65.5,\"width\":205,\"height\":200}},{\"id\":\"1659334098930\",\"index\":1,\"audio_url\":\"http://staging-teach.cdn.ireadabc.com/16eb06a6beb9e4fa77c9b5d2d643ab29.mp3\",\"itemType\":\"rect\",\"fontScale\":1.61953125,\"imgScale\":1,\"imgSizeW\":0,\"imgSizeH\":0,\"mapScale\":1.61953125,\"dragDot\":{\"x\":1036.5,\"y\":387.5},\"gIdx\":\"0\",\"labelText\":\"1\",\"posX\":1212.5,\"posY\":643.5,\"skeJsonData\":{\"url\":\"http://staging-teach.cdn.ireadabc.com/679fed26daa464819d553de6331b3552.json\",\"name\":\"alien-pro.json\"},\"texJsonData\":{\"url\":\"http://staging-teach.cdn.ireadabc.com/65d8214c6b5c5d0496e17adb0408276a.atlas\",\"name\":\"alien-pro.atlas\"},\"texPngData\":{\"url\":\"http://staging-teach.cdn.ireadabc.com/a319b372899239325b90bb4ec07b4970.png\",\"name\":\"alien-pro.png\"},\"animType\":\"spine\",\"rect\":{\"x\":375.56,\"y\":543.5,\"width\":200,\"height\":200}}]}\n\t\t// return defaultData;\n\t},\n\n\tpreloadItem() {\n\t\tthis.addPreloadImage();\n\t\tthis.addPreloadAudio();\n\t\tthis.addPreloadAnima();\n\t\tthis.preload();\n\t},\n\n\n\taddPreloadImage() {\n\n\t\tthis._imageResList.push({ url: this.data.bgItem.url});\n\n\t\tfor (const q of this.data.hotZoneItemArr) {\n\t\t\tif (q.gIdx =='0') {\n\t\t\t\tthis._imageResList.push({ url: q.texPngData.url});\n\t\t\t}\n\n\t\t\tif (q.gIdx =='1') {\n\t\t\t\tthis._imageResList.push({ url: q.texPngData.url });\n\t\t\t}\n\t\t\tif (q.gIdx =='2') {\n\t\t\t\tthis._imageResList.push({ url: q.pic_url});\n\t\t\t}\n\t\t}\n\t},\n\tprepareAudioClip(url, key) {\n\t\tif (url) {\n\t\t\tcc.assetManager.loadRemote(url, (err, audioClip) => {\n\t\t\t\tif (audioClip) {\n\t\t\t\t\tthis[key] = audioClip;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t},\n\taddPreloadAudio() {\n\n\t\tthis._audioResList.push({ url: this.data.begin_audio });\n\t\t// this.prepareAudioClip(this.data.begin_audio1, 'begin_audio1')\n\t\t// this._audioResList.push({ url: this.data.begin_audio2 });\n\t\t// this.prepareAudioClip(this.data.begin_audio2, 'begin_audio2')\n\t\tthis._audioResList.push({ url: this.data.guide_audio });\n\t\tthis._audioResList.push({ url: this.data.playing_audio });\n\t\tif (this.data.wrong_audio) {\n\t\t\tthis._audioResList.push({ url: this.data.wrong_audio });\n\t\t\tthis.wrongAudio = this.data.wrong_audio\n\t\t}\n\t\tif (this.data.right_audio) {\n\t\t\tthis._audioResList.push({ url: this.data.right_audio });\n\t\t\tthis.rightAudio = this.data.right_audio\n\t\t}\n\t\tthis._audioResList.push({ url: this.data.wrong_audio1 });\n\t\tthis._audioResList.push({ url: this.data.wrong_audio2 });\n\t\tthis._audioResList.push({ url: this.data.end_audio });\n\n\n\t\tfor (const q of this.data.hotZoneItemArr) {\n\t\t\tif (q.gIdx =='0') {\n\t\t\t\tthis._audioResList.push({ url: q.audio_url });\n\t\t\t}\n\t\t}\n\t},\n\tdebugPointer() {\n\t\tconst boxDebugger = cc.find('Canvas/box-debugger');\n\t\tif (!this.isDebug) {\n\t\t\tboxDebugger.active = false;\n\t\t\treturn;\n\t\t}\n\t\tif (!this.POINTER_NODE) {\n\t\t\tthis.POINTER_NODE = new cc.Node();\n\t\t\tthis.POINTER_NODE.parent = boxDebugger;\n\t\t\tthis.POINTER_NODE.name = 'POINTER_NODE'\n\t\t\tthis.POINTER_NODE.addComponent(cc.Graphics);\n\t\t}\n\t\tconst grap = this.POINTER_NODE.getComponent(cc.Graphics);\n\t\tgrap.clear();\n\t\tconst ground = cc.find('Canvas/frame-border/ground');\n\t\tconst {width: baseW, height: baseH} = ground;\n\t\tconst {x: px, y: py} = this._lastFingerPosition.pos;\n\t\tlet x = baseW * px - baseW / 2;\n\t\tlet y = baseH - (baseH * py) - baseH / 2 - 16;\n\t\tconst pn = new cc.Node();\n\t\t\n\t\tgrap.fillColor=cc.color(255, 0, 0);\n\t\tgrap.circle(x, y, 32);\n\t\tgrap.fill();\n\t\tgrap.stroke();\n\t},\n\tdebugGraphics() {\n\t\tconst boxDebugger = cc.find('Canvas/box-debugger');\n\t\tif (!this.isDebug) {\n\t\t\tboxDebugger.active = false;\n\t\t\treturn;\n\t\t}\n\t\tboxDebugger.active = true;\n\t\tconsole.log('show debug graphics');\n\t\tconst ground = cc.find('Canvas/frame-border/ground');\n\t\tconst canvas = cc.find('Canvas');\n\t\tconst {width: baseW, height: baseH} = ground;\n\t\tconst {width: bgW, height: bgH} = this.data.bgItem.rect\n\t\tconst scaleX = bgW / baseW;\n\t\tconst scaleY = bgH / baseH;\n\t\tlet added =false\n\t\tthis.data.hotZoneItemArr.forEach(area => {\n\t\t\t\n\t\t\tif (added) {\n\t\t\t\t// return\n\t\t\t}\n\t\t\tif (area.gIdx != '0') {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tadded = true;\n\t\t\tconst dn = new cc.Node();\n\t\t\tconst lblNode = new cc.Node();\n\t\t\tlblNode.parent = dn\n\t\t\tconst lbl = lblNode.addComponent(cc.Label);\n\t\t\tlblNode.color = cc.color(0,0,0)\n\t\t\tlbl.string = area.skeJsonData.name.substring(0, area.skeJsonData.name.length - 9)\n\t\t\tdn.name = lbl.string;\n\t\t\tdn.parent = boxDebugger;\n\t\t\tdn.width = baseW;\n\t\t\tdn.height = baseH;\n\t\t\t\n\t\t\tconst grap = dn.addComponent(cc.Graphics);\n\t\t\tconst r = RandomInt(1,255)\n\t\t\tconst g = RandomInt(1,255)\n\t\t\tconst b = RandomInt(1,255)\n\t\t\tgrap.fillColor=cc.color(r, g, b, 127);\n\t\t\tconst {x: rx, y: ry, width: rw, height: rh} = area.rect;\n\t\t\tlet w = (rw / bgW) * baseW;\n\t\t\tlet h = (rh / bgH) * baseH;\n\t\t\tlet x = (rx / bgW) * baseW - baseW / 2;\n\t\t\tlet y = baseH - ((ry / bgH) * baseH) - h - baseH / 2;\n\t\t\t// w *= scaleX\n\t\t\t// h *= scaleY\n\t\t\t// x *= scaleX\n\t\t\t// y *= scaleY\n // const p = boxDebugger.convertToNodeSpaceAR(cc.v2(x,y));\n\t\t\t// x = p.x;\n\t\t\t// y = p.y;\n\t\t\tlblNode.x = x;\n\t\t\tlblNode.y = y + h;\n\t\t\t// dn.scaleX = scaleX;\n\t\t\t// dn.scaleY = scaleY;\n\t\t\t// dn.scale = area.mapScale; // minScale; // this._mapScaleMax * area.mapScale; // ;\n\t\t\tconsole.log('[debug]', area.skeJsonData.name, x, y, w, h);\n\t\t\tgrap.fillRect(x, y, w, h);\n\t\t\tgrap.stroke();\n\t\t\t\n\t\t});\n\n\t},\n\taddPreloadAnima() {\n\n\t},\n\n\tpreload() {\n\n\t\tconst preloadArr = this._imageResList.concat(this._audioResList).concat(this._animaResList);\n\t\t// console.log(preloadArr);\n\t\tcc.assetManager.loadAny(preloadArr, null, (f, t, item) => {\n\t\t\t// console.log(f, t, item)\n\t\t}, (err, data) => {\n\t\t\t// console.log(err, data);\n\t\t\tconst ground = cc.find(`Canvas/frame-border/ground`);\n\t\t\tconst groundBg = cc.find(`Canvas/frame-border/ground/bg`);\n\t\t\tgroundBg.active = false;\n\t\t\tconst baseRect = this.data.bgItem.rect;\n\t\t\tgetSpriteFrimeByUrl(this.data.bgItem.url, (sf) => {\n\t\t\t\tconst gs = groundBg.getComponent(cc.Sprite);\n\t\t\t\tgs.spriteFrame = sf;\n\t\t\t\tgroundBg.active = true;\n\n\t\t\t\tlet dbCount = 0;\n\t\t\t\tlet finishDbCount = 0\n\t\t\t\tfor(const block of this.data.hotZoneItemArr) {\n\t\t\t\t\tif (block.gIdx == '0' || block.gIdx == '1') {\n\t\t\t\t\t\tdbCount++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfor(const block of this.data.hotZoneItemArr) {\n\n\t\t\t\t\t\n\t\t\t\t\tif (block.gIdx == '2') {\n\t\t\t\t\t\tconst s1 = ((ground.width / block.imgSizeW) + (ground.height / block.imgSizeH)) / 2\n\t\t\t\t\t\tconst node = new cc.Node();\n\t\t\t\t\t\tnode.parent = ground;\n\t\t\t\t\t\tconst spr = node.addComponent(cc.Sprite);\n\t\t\t\t\t\tgetSpriteFrimeByUrl(block.pic_url, (sf) => {\n\t\t\t\t\t\tspr.spriteFrame = sf;\n\t\t\t\t\t\tnode.scale = s1;\n\t\t\t\t\t\t})\n\n\t\t\t\t\t}\n\t\t\t\t\tif (block.gIdx == '0' || block.gIdx == '1') {\n\n\t\t\t\t\t\tconst n = new cc.Node();\n\t\t\t\t\t\t// n.scale = 0.25;\n\t\t\t\t\t\tn.scale = ground.width / groundBg.width;\n\n\t\t\t\t\t\tn.parent = ground;\n\t\t\t\t\t\tn.active = false;\n\n\t\t\t\t\t\tif (block.animType == 'spine') {\n\t\t\t\n\t\t\t\t\t\t\tconst skeleton = n.addComponent(sp.Skeleton);\n\t\t\t\t\t\t\tn.isSpine = true;\n\n\t\t\t\t\t\t\tloadSpine(skeleton, block.texPngData.name, {\n\t\t\t\t\t\t\t\ttex: block.texPngData.url, \n\t\t\t\t\t\t\t\tatlas: block.texJsonData.url,\n\t\t\t\t\t\t\t\tske: block.skeJsonData.url,\n\t\t\t\t\t\t\t}).then(({width, height}) => {\n\t\t\t\t\t\t\t\tn.width = width;\n\t\t\t\t\t\t\t\tn.height = height;\t\n\t\t\t\t\t\t\t\tn.active = true;\n\t\t\t\t\t\t\t\t// db.playAnimation('null', 0);\n\t\t\t\t\t\t\t\t// skeleton.setToSetupPose();\n\t\t\t\t\t\t\t\t// skeleton.setAnimation(0, 'enlarge', true);\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tthis._allAnimationNodes.push(n);\n\t\t\t\t\t\t\t\tfinishDbCount++;\n\t\t\t\t\t\t\t\tconsole.log(finishDbCount, dbCount)\n\t\t\t\t\t\t\t\tif (finishDbCount == dbCount) {\n\t\t\t\t\t\t\t\t\tthis.loadEnd();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}).catch(() => {\n\t\t\t\t\t\t\t\tfinishDbCount++;\n\t\t\t\t\t\t\t\tconsole.log(finishDbCount, dbCount)\n\t\t\t\t\t\t\t\tif (finishDbCount == dbCount) {\n\t\t\t\t\t\t\t\t\tthis.loadEnd();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t} else {\n\t\t\n\t\t\t\t\t\t\tconst db = n.addComponent(dragonBones.ArmatureDisplay);\n\n\t\t\t\t\t\t\tloadDragonBones(db, {\n\t\t\t\t\t\t\t\ttex: block.texPngData.url, \n\t\t\t\t\t\t\t\tatlas: block.texJsonData.url,\n\t\t\t\t\t\t\t\tske: block.skeJsonData.url,\n\t\t\t\t\t\t\t}).then(({width, height}) => {\n\t\t\t\t\t\t\t\tn.width = width;\n\t\t\t\t\t\t\t\tn.height = height;\t\n\t\t\t\t\t\t\t\tn.active = true;\n\t\t\t\t\t\t\t\tdb.playAnimation('null', 0);\n\t\t\t\t\t\t\t\tthis._allAnimationNodes.push(n);\n\t\t\t\t\t\t\t\tfinishDbCount++;\n\t\t\t\t\t\t\t\tconsole.log(finishDbCount, dbCount)\n\t\t\t\t\t\t\t\tif (finishDbCount == dbCount) {\n\t\t\t\t\t\t\t\t\tthis.loadEnd();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}).catch(() => {\n\t\t\t\t\t\t\t\tfinishDbCount++;\n\t\t\t\t\t\t\t\tconsole.log(finishDbCount, dbCount)\n\t\t\t\t\t\t\t\tif (finishDbCount == dbCount) {\n\t\t\t\t\t\t\t\t\tthis.loadEnd();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\n\t\t\t\t\t\tif (block.gIdx == '0') {\n\t\t\t\t\t\t\tconst rectInfo = {\n\t\t\t\t\t\t\t\tnode: n,\n\t\t\t\t\t\t\t\taudio_url: block.audio_url ,\n\t\t\t\t\t\t\t\trect: {\n\t\t\t\t\t\t\t\t\tx: block.rect.x / baseRect.width,\n\t\t\t\t\t\t\t\t\ty: block.rect.y / baseRect.height,\n\t\t\t\t\t\t\t\t\twidth: block.rect.width / baseRect.width,\n\t\t\t\t\t\t\t\t\theight: block.rect.height / baseRect.height,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tthis._figurePointRectArray.push(rectInfo);\n\n\t\t\t\t\t\t\t// this.addRectNodeListener(block);\n\t\t\n\t\t\t\t\t\t\tif (block.labelText) {\n\t\t\t\t\t\t\t\tconst k = +block.labelText * 1000;\n\t\t\t\t\t\t\t\tif(!isNaN(k)) {\n\t\t\t\t\t\t\t\t\tthis._hintsNodeList.push({\n\t\t\t\t\t\t\t\t\t\tnode: n,\n\t\t\t\t\t\t\t\t\t\tafter: k\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\t\n\t\t\t// console.log(this.data);\n\t\t\tconsole.log('resource perload finish');\n\n// <<<<<<< HEAD\n// =======\n// \t\t\tif (window && window[\"air\"]) {\n// \t\t\t\t// cc.find('Canvas').opacity = 0;\n// \t\t\t\twindow.air.onCourseInScreen = (next) => {\n// \t\t\t\t\t// cc.find('Canvas').opacity = 255;\n// \t\t\t\t\tthis.loadEnd();\n// \t\t\t\t\tnext();\n// \t\t\t\t}\n// \t\t\t\twindow.air.hideAirClassLoading();\n// \t\t\t} else {\n// \t\t\t\tthis.loadEnd();\n// \t\t\t}\n// >>>>>>> 2d461e1910571bcfc6ad4dc93c2cedafc20923ea\n\n\t\t\tcc.debug.setDisplayStats(false);\n\t\t});\n\t},\n\n\n\tloadEnd() {\n\t\tif (window && window[\"air\"] && window[\"air\"].hideAirClassLoading) {\n\t\t\twindow[\"air\"].hideAirClassLoading();\n\t\t}\n\t\tthis.initData();\n\t\t// this.initAudio();\n\t\t// this.initView();\n\t\tthis.initBg();\n\t\t// this.initListener();\n\t\tthis.debugGraphics();\n\t\tthis.createStateMachine();\n\t},\n\n\t_cantouch: null,\n\tinitData() {\n\t\t// 所有全局å˜é‡ 默认都是null \n\t\tthis._cantouch = true;\n\t},\n\n\t// audioBtn: null,\n\t// initAudio() {\n\t// \tconst audioNode = cc.find('Canvas/res/audio');\n\n\t// \tconst getAudioByResName = (resName) => {\n\t// \t\treturn audioNode.getChildByName(resName).getComponent(cc.AudioSource);\n\t// \t}\n\n\t// \tthis.audioBtn = getAudioByResName('btn');\n\n\t// },\n\n\n\t// initView() {\n\n\t// \t// this.initBg();\n\t// \t// this.initPic();\n\t// \t// this.initBtn();\n\t// \tthis.initIcon();\n\t// },\n\n\taddRectNodeListener(data) {\n\n\n\t\tconst bg = cc.find(`Canvas/frame-border/ground/bg`).parent;\n\n\t\tconst rate = (bg.scale * bg.width) / this.data.bgItem.rect.width;\n\n\t\tconst rectNode = new cc.Node();\n\t\trectNode.name = 'rect' + data.index;\n\t\tbg.addChild(rectNode, 20);\n\n\n\t\tconst ctx = rectNode.addComponent(cc.Graphics);\n\t\t// 红色矩形\n\t\tctx.lineWidth = 4;\n\t\tctx.strokeColor = cc.Color.BLACK;\n\t\tctx.fillColor = cc.Color.WHITE.setA(100);\n\n\t\tconst scale = rate / bg.scaleY;\n\n\t\tconsole.log('scale~ : ', scale)\n\n\t\trectNode.width = data.rect.width * scale;\n\t\trectNode.height = data.rect.height * scale;\n\t\trectNode.x = -bg.width / 2 + data.rect.x * scale + bg.x;\n\t\trectNode.y = bg.height / 2 - data.rect.height * scale - data.rect.y * scale + bg.y;\n\n\t\trectNode.anchorX = rectNode.anchorY = 0;\n\n\t\tconsole.log('data: ', data);\n\t\tconsole.log('rectNode: ', rectNode);\n\n\n\t\t// if (pageData.bgItem.isShowDebugLine) {\n\t\t\tctx.rect(0, 0, rectNode.width, rectNode.height);\n\t\t\t// ctx.fillRect(0, 0, 200, 200);\n\t\t// }\n\t\tctx.stroke();\n\t\tctx.fill();\n\n\t\trectNode.addComponent(cc.Button);\n\t\trectNode.on(\"click\", () => {\n\t\t\tconsole.log(\" in rectNode click\");\n\n\n\t\t\tconst _x = rectNode.x / bg.width;\n\t\t\tconst _y = rectNode.y / bg.height;\n\t\t\tconst _w = rectNode.width / bg.width;\n\t\t\tconst _h = rectNode.height / bg.height;\n\n\t\t\tconst pos = {\n\t\t\t\tx: _x + _w / 2 + 0.5,\n\t\t\t\ty: -(_y + _h / 2 - 0.5)\n\t\t\t}\n\t\t\tthis._lastFingerPosition = {\n\t\t\t\tpos: pos,\n\t\t\t\tdirty: true\n\t\t\t};\n\n\t\t})\n\n\t},\n\n\tinitBg() {\n\t\tconst bgNode = cc.find('Canvas/bg');\n\t\tbgNode.scale = this._mapScaleMax;\n\t\tconsole.log('this._mapScaleMax', this._mapScaleMax);\n\t},\n\n\t\n\t\n\n\t/*initBtn() {\n\n\t\tthis.curPage = 0;\n\t\tconst bottomPart = cc.find('Canvas/bottomPart');\n\t\tbottomPart.zIndex = 5; // æé«˜å±‚级\n\n\t\tbottomPart.x = bottomPart.parent.width / 2;\n\t\tbottomPart.y = -bottomPart.parent.height / 2;\n\n\t\tconst leftBtnNode = bottomPart.getChildByName('btn_left');\n\t\t//èŠ‚ç‚¹ä¸æ·»åŠ äº†button组件 则å¯ä»¥æ·»åŠ click事件监å¬\n\t\tleftBtnNode.on('click', () => {\n\t\t\tif (!this._cantouch) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (this.curPage == 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.curPage = 0\n\t\t\tthis.leftMove();\n\n\t\t\t// 游æˆç»“æŸæ—¶éœ€è¦è°ƒç”¨è¿™ä¸ªæ–¹æ³•通知系统作业完æˆ\n\t\t\tonHomeworkFinish();\n\n\t\t\tcc.audioEngine.play(this.audioBtn.clip, false, 0.8)\n\t\t})\n\n\t\tconst rightBtnNode = bottomPart.getChildByName('btn_right');\n\t\t//èŠ‚ç‚¹ä¸æ·»åŠ äº†button组件 则å¯ä»¥æ·»åŠ click事件监å¬\n\t\trightBtnNode.on('click', () => {\n\t\t\tif (!this._cantouch) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (this.curPage == 1) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.curPage = 1\n\t\t\tthis.rightMove();\n\n\t\t\tcc.audioEngine.play(this.audioBtn.clip, false, 0.5)\n\t\t})\n\t},*/\n\n\n\n\n\t// update (dt) {},\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\t_timeoutIds: null,\n\t_intervalIds: null,\n\t// 生命周期\n\tonDestroy() {\n\t\tconsole.log('op15 onDestroy');\n\t\tthis._timeoutIds.forEach(id => {\n\t\t\tclearTimeout(id);\n\t\t});\n\t\tthis._intervalIds.forEach(id => {\n\t\t\tclearInterval(id);\n\t\t});\n\t\tthis.gameMachineService.stopChild();\n\t\tthis.gameMachineService.stop();\n\t\tif(window.courseware && window.courseware.closeOsmoFingerRead) {\n\t\t\tif (this.isOpenedOsmoFingerRead) {\n\t\t\t\twindow.courseware.closeOsmoFingerRead()\n\t\t\t}\n\t\t}\n\t},\n\n\n\n\n\n});\n"]} \ No newline at end of file diff --git a/library/uuid-to-mtime.json b/library/uuid-to-mtime.json index 36b2d0c..6ec00c6 100644 --- a/library/uuid-to-mtime.json +++ b/library/uuid-to-mtime.json @@ -1,502 +1,502 @@ { "9836134e-b892-4283-b6b2-78b5acf3ed45": { "asset": 1617772640000, - "meta": 1659424298775, + "meta": 1660530040432, "relativePath": "effects" }, "430eccbf-bf2c-4e6e-8c0c-884bbb487f32": { "asset": 1617772640000, - "meta": 1659424298807, + "meta": 1660530040463, "relativePath": "effects/__builtin-editor-gizmo-line.effect" }, "6c5cf6e1-b044-4eac-9431-835644d57381": { "asset": 1617772640000, - "meta": 1659424298818, + "meta": 1660530040473, "relativePath": "effects/__builtin-editor-gizmo-unlit.effect" }, "115286d1-2e10-49ee-aab4-341583f607e8": { "asset": 1617772640000, - "meta": 1659424298851, + "meta": 1660530040504, "relativePath": "effects/__builtin-editor-gizmo.effect" }, "abc2cb62-7852-4525-a90d-d474487b88f2": { "asset": 1617772640000, - "meta": 1659424298945, + "meta": 1660530040591, "relativePath": "effects/builtin-phong.effect" }, "e2f00085-c597-422d-9759-52c360279106": { "asset": 1617772640000, - "meta": 1659424298992, + "meta": 1660530040637, "relativePath": "effects/builtin-toon.effect" }, "f8e6b000-5643-4b86-9080-aa680ce1f599": { "asset": 1617772640000, - "meta": 1659424298997, + "meta": 1660530040638, "relativePath": "image" }, "71561142-4c83-4933-afca-cb7a17f67053": { "asset": 1617772640000, - "meta": 1659424299010, + "meta": 1660530040652, "relativePath": "image/default_btn_disabled.png" }, "e851e89b-faa2-4484-bea6-5c01dd9f06e2": { "asset": 1617772640000, - "meta": 1659424299012, + "meta": 1660530040653, "relativePath": "image/default_btn_normal.png" }, "b43ff3c2-02bb-4874-81f7-f2dea6970f18": { "asset": 1617772640000, - "meta": 1659424299021, + "meta": 1660530040662, "relativePath": "image/default_btn_pressed.png" }, "edd215b9-2796-4a05-aaf5-81f96c9281ce": { "asset": 1617772640000, - "meta": 1659424299020, + "meta": 1660530040663, "relativePath": "image/default_editbox_bg.png" }, "d81ec8ad-247c-4e62-aa3c-d35c4193c7af": { "asset": 1617772640000, - "meta": 1659424299029, + "meta": 1660530040671, "relativePath": "image/default_panel.png" }, "99170b0b-d210-46f1-b213-7d9e3f23098a": { "asset": 1617772640000, - "meta": 1659424299030, + "meta": 1660530040672, "relativePath": "image/default_progressbar_bg.png" }, "cfef78f1-c8df-49b7-8ed0-4c953ace2621": { "asset": 1617772640000, - "meta": 1659424299038, + "meta": 1660530040679, "relativePath": "image/default_progressbar.png" }, "567dcd80-8bf4-4535-8a5a-313f1caf078a": { "asset": 1617772640000, - "meta": 1659424299040, + "meta": 1660530040680, "relativePath": "image/default_radio_button_off.png" }, "4bab67cb-18e6-4099-b840-355f0473f890": { "asset": 1617772640000, - "meta": 1659424299049, + "meta": 1660530040687, "relativePath": "image/default_scrollbar_bg.png" }, "9d60001f-b5f4-4726-a629-2659e3ded0b8": { "asset": 1617772640000, - "meta": 1659424299048, + "meta": 1660530040688, "relativePath": "image/default_radio_button_on.png" }, "617323dd-11f4-4dd3-8eec-0caf6b3b45b9": { "asset": 1617772640000, - "meta": 1659424299057, + "meta": 1660530040695, "relativePath": "image/default_scrollbar_vertical_bg.png" }, "d6d3ca85-4681-47c1-b5dd-d036a9d39ea2": { "asset": 1617772640000, - "meta": 1659424299059, + "meta": 1660530040696, "relativePath": "image/default_scrollbar_vertical.png" }, "0275e94c-56a7-410f-bd1a-fc7483f7d14a": { "asset": 1617772640000, - "meta": 1659424299065, + "meta": 1660530040703, "relativePath": "image/default_sprite_splash.png" }, "0291c134-b3da-4098-b7b5-e397edbe947f": { "asset": 1617772640000, - "meta": 1659424299066, + "meta": 1660530040704, "relativePath": "image/default_scrollbar.png" }, "6e056173-d285-473c-b206-40a7fff5386e": { "asset": 1617772640000, - "meta": 1659424299074, + "meta": 1660530040715, "relativePath": "image/default_sprite.png" }, "73a0903d-d80e-4e3c-aa67-f999543c08f5": { "asset": 1617772640000, - "meta": 1659424299076, + "meta": 1660530040716, "relativePath": "image/default_toggle_checkmark.png" }, "d29077ba-1627-4a72-9579-7b56a235340c": { "asset": 1617772640000, - "meta": 1659424299084, + "meta": 1660530040726, "relativePath": "image/default_toggle_normal.png" }, "c25b9d50-c8fc-4d27-beeb-6e7c1f2e5c0f": { "asset": 1617772640000, - "meta": 1659424299083, + "meta": 1660530040727, "relativePath": "image/default_toggle_disabled.png" }, "b181c1e4-0a72-4a91-bfb0-ae6f36ca60bd": { "asset": 1617772640000, - "meta": 1659424299092, + "meta": 1660530040736, "relativePath": "image/default_toggle_pressed.png" }, "5c3eedba-6c41-4c0c-9ba7-d91f813cbd1c": { "asset": 1617772640000, - "meta": 1659424299093, + "meta": 1660530040737, "relativePath": "materials" }, "c4480a0a-6ac5-443f-8b40-361a14257fc8": { "asset": 1617772640000, - "meta": 1659424299474, + "meta": 1660530041074, "relativePath": "materials/builtin-phong.mtl" }, "fc09f9bd-2cce-4605-b630-8145ef809ed6": { "asset": 1617772640000, - "meta": 1659424299096, + "meta": 1660530040740, "relativePath": "misc" }, "2be36297-9abb-4fee-8049-9ed5e271da8a": { "asset": 1617772640000, - "meta": 1659424299101, + "meta": 1660530040745, "relativePath": "misc/default_video.mp4" }, "db019bf7-f71c-4111-98cf-918ea180cb48": { "asset": 1617772640000, - "meta": 1659424299102, + "meta": 1660530040746, "relativePath": "model" }, "e39e96e6-6f6e-413f-bcf1-ac7679bb648a": { "asset": 1617772640000, - "meta": 1659424299103, + "meta": 1660530040747, "relativePath": "model/prefab" }, "600301aa-3357-4a10-b086-84f011fa32ba": { "asset": 1617772640000, - "meta": 1659424299106, + "meta": 1660530040753, "relativePath": "image/default-particle.png" }, "a87cc147-01b2-43f8-8e42-a7ca90b0c757": { "asset": 1617772640000, - "meta": 1659424299105, + "meta": 1660530040750, "relativePath": "model/prefab/box.prefab" }, "b5fc2cf2-7942-483d-be1f-bbeadc4714ad": { "asset": 1617772640000, - "meta": 1659424299110, + "meta": 1660530040755, "relativePath": "model/prefab/cone.prefab" }, "fe1417b6-fe6b-46a4-ae7c-9fd331f33a2a": { "asset": 1617772640000, - "meta": 1659424299109, + "meta": 1660530040752, "relativePath": "model/prefab/capsule.prefab" }, "1c5e4038-953a-44c2-b620-0bbfc6170477": { "asset": 1617772640000, - "meta": 1659424299113, + "meta": 1660530040757, "relativePath": "model/prefab/cylinder.prefab" }, "3f376125-a699-40ca-ad05-04d662eaa1f2": { "asset": 1617772640000, - "meta": 1659424299112, + "meta": 1660530040761, "relativePath": "model/prefab/plane.prefab" }, "6c9ef10d-b479-420b-bfe6-39cdda6a8ae0": { "asset": 1617772640000, - "meta": 1659424299115, + "meta": 1660530040759, "relativePath": "model/prefab/quad.prefab" }, "2d9a4b85-b0ab-4c46-84c5-18f393ab2058": { "asset": 1617772640000, - "meta": 1659424299116, + "meta": 1660530040762, "relativePath": "model/prefab/sphere.prefab" }, "de510076-056b-484f-b94c-83bef217d0e1": { "asset": 1617772640000, - "meta": 1659424299129, + "meta": 1660530040776, "relativePath": "model/prefab/torus.prefab" }, "f6e6dd15-71d1-4ffe-ace7-24fd39942c05": { "asset": 1617772640000, - "meta": 1659424299130, + "meta": 1660530040777, "relativePath": "obsolete" }, "8a96b965-2dc0-4e03-aa90-3b79cb93b5b4": { "asset": 1617772640000, - "meta": 1659424299142, + "meta": 1660530040789, "relativePath": "obsolete/atom.png" }, "f743d2b6-b7ea-4c14-a55b-547ed4d0a045": { "asset": 1617772640000, - "meta": 1659424299143, + "meta": 1660530040790, "relativePath": "particle" }, "b8223619-7e38-47c4-841f-9160c232495a": { "asset": 1617772640000, - "meta": 1659424299489, + "meta": 1660530041087, "relativePath": "obsolete/atom.plist" }, "d0a82d39-bede-46c4-b698-c81ff0dedfff": { "asset": 1617772640000, - "meta": 1659424299151, + "meta": 1660530040797, "relativePath": "particle/atom.png" }, "ae6c6c98-11e4-452f-8758-75f5c6a56e83": { "asset": 1617772640000, - "meta": 1659424299152, + "meta": 1660530040798, "relativePath": "prefab" }, "897ef7a1-4860-4f64-968d-f5924b18668a": { "asset": 1617772640000, - "meta": 1659424299154, + "meta": 1660530040800, "relativePath": "prefab/2d-camera.prefab" }, "b2687ac4-099e-403c-a192-ff477686f4f5": { "asset": 1617772640000, - "meta": 1659424299491, + "meta": 1660530041089, "relativePath": "particle/atom.plist" }, "70d7cdb0-04cd-41bb-9480-c06a4785f386": { "asset": 1617772640000, - "meta": 1659424299156, + "meta": 1660530040802, "relativePath": "prefab/3d-camera.prefab" }, "70bbeb73-6dc2-4ee4-8faf-76b3a0e34ec4": { "asset": 1617772640000, - "meta": 1659424299158, + "meta": 1660530040805, "relativePath": "prefab/3d-particle.prefab" }, "ed88f13d-fcad-4848-aa35-65a2cb973584": { "asset": 1617772640000, - "meta": 1659424299161, + "meta": 1660530040812, "relativePath": "prefab/3d-stage.prefab" }, "972b9a4d-47ee-4c74-b5c3-61d8a69bc29f": { "asset": 1617772640000, - "meta": 1659424299164, + "meta": 1660530040814, "relativePath": "prefab/button.prefab" }, "2c937608-2562-40ea-b264-7395df6f0cea": { "asset": 1617772640000, - "meta": 1659424299166, + "meta": 1660530040817, "relativePath": "prefab/canvas.prefab" }, "61aeb05b-3b32-452b-8eed-2b76deeed554": { "asset": 1617772640000, - "meta": 1659424299168, + "meta": 1660530040819, "relativePath": "prefab/editbox.prefab" }, "27756ebb-3d33-44b0-9b96-e858fadd4dd4": { "asset": 1617772640000, - "meta": 1659424299169, + "meta": 1660530040820, "relativePath": "prefab/label.prefab" }, "785a442c-3ceb-45be-a46e-7317f625f3b9": { "asset": 1617772640000, - "meta": 1659424299171, + "meta": 1660530040822, "relativePath": "prefab/layout.prefab" }, "a3ee0214-b432-4865-9666-4a3211814282": { "asset": 1617772640000, - "meta": 1659424299172, + "meta": 1660530040823, "relativePath": "prefab/light" }, "61906da3-7003-4bda-9abc-5769c76faee4": { "asset": 1617772640000, - "meta": 1659424299173, + "meta": 1660530040825, "relativePath": "prefab/light/ambient.prefab" }, "ddb99b39-7004-47cd-9705-751905c43c46": { "asset": 1617772640000, - "meta": 1659424299175, + "meta": 1660530040826, "relativePath": "prefab/light/directional.prefab" }, "0cf30284-9073-46bc-9eba-e62b69dbbff3": { "asset": 1617772640000, - "meta": 1659424299176, + "meta": 1660530040828, "relativePath": "prefab/light/point.prefab" }, "f5331fd2-bf42-4ee3-a3fd-3e1657600eff": { "asset": 1617772640000, - "meta": 1659424299178, + "meta": 1660530040829, "relativePath": "prefab/light/spot.prefab" }, "ca8401fe-ad6e-41a8-bd46-8e3e4e9945be": { "asset": 1617772640000, - "meta": 1659424299180, + "meta": 1660530040831, "relativePath": "prefab/pageview.prefab" }, "cd33edea-55f5-46c2-958d-357a01384a36": { "asset": 1617772640000, - "meta": 1659424299181, + "meta": 1660530040833, "relativePath": "prefab/particlesystem.prefab" }, "5965ffac-69da-4b55-bcde-9225d0613c28": { "asset": 1617772640000, - "meta": 1659424299184, + "meta": 1660530040835, "relativePath": "prefab/progressBar.prefab" }, "4a37dd57-78cd-4cec-aad4-f11a73d12b63": { "asset": 1617772640000, - "meta": 1659424299185, + "meta": 1660530040837, "relativePath": "prefab/richtext.prefab" }, "32044bd2-481f-4cf1-a656-e2b2fb1594eb": { "asset": 1617772640000, - "meta": 1659424299188, + "meta": 1660530040839, "relativePath": "prefab/scrollview.prefab" }, "0004d1cf-a0ad-47d8-ab17-34d3db9d35a3": { "asset": 1617772640000, - "meta": 1659424299190, + "meta": 1660530040841, "relativePath": "prefab/slider.prefab" }, "1f55e3be-b89b-4b79-88de-47fd31018044": { "asset": 1617772640000, - "meta": 1659424299192, + "meta": 1660530040843, "relativePath": "prefab/sprite_splash.prefab" }, "96083d03-c332-4a3f-9386-d03e2d19e8ee": { "asset": 1617772640000, - "meta": 1659424299194, + "meta": 1660530040844, "relativePath": "prefab/sprite.prefab" }, "7de03a80-4457-438d-95a7-3e7cdffd6086": { "asset": 1617772640000, - "meta": 1659424299196, + "meta": 1660530040846, "relativePath": "prefab/tiledmap.prefab" }, "0e42ba95-1fa1-46aa-b2cf-143cd1bcee2c": { "asset": 1617772640000, - "meta": 1659424299198, + "meta": 1660530040848, "relativePath": "prefab/tiledtile.prefab" }, "0d784963-d024-4ea6-a7db-03be0ad63010": { "asset": 1617772640000, - "meta": 1659424299200, + "meta": 1660530040850, "relativePath": "prefab/toggle.prefab" }, "bf0a434c-84dd-4a8e-a08a-7a36f180cc75": { "asset": 1617772640000, - "meta": 1659424299203, + "meta": 1660530040853, "relativePath": "prefab/toggleContainer.prefab" }, "d1b8be49-b0a0-435c-83b7-552bed4bbe35": { "asset": 1617772640000, - "meta": 1659424299212, + "meta": 1660530040866, "relativePath": "prefab/toggleGroup.prefab" }, "232d2782-c4bd-4bb4-9e01-909f03d6d3b9": { "asset": 1617772640000, - "meta": 1659424299221, + "meta": 1660530040869, "relativePath": "prefab/videoplayer.prefab" }, "8c5001fd-07ee-4a4b-a8a0-63e15195e94d": { "asset": 1617772640000, - "meta": 1659424299224, + "meta": 1660530040872, "relativePath": "prefab/webview.prefab" }, "d8afc78c-4eac-4a9f-83dd-67bc70344d33": { "asset": 1617772640000, - "meta": 1659424299225, + "meta": 1660530040872, "relativePath": "resources" }, "294c1663-4adf-4a1e-a795-53808011a38a": { "asset": 1617772640000, - "meta": 1659424299226, + "meta": 1660530040873, "relativePath": "resources/effects" }, "30682f87-9f0d-4f17-8a44-72863791461b": { "asset": 1617772640000, - "meta": 1659424299235, + "meta": 1660530040881, "relativePath": "resources/effects/builtin-2d-graphics.effect" }, "144c3297-af63-49e8-b8ef-1cfa29b3be28": { "asset": 1617772640000, - "meta": 1659424299244, + "meta": 1660530040888, "relativePath": "resources/effects/builtin-2d-gray-sprite.effect" }, "f18742d7-56d2-4eb5-ae49-2d9d710b37c8": { "asset": 1617772640000, - "meta": 1659424299257, + "meta": 1660530040905, "relativePath": "resources/effects/builtin-2d-label.effect" }, "0e93aeaa-0b53-4e40-b8e0-6268b4e07bd7": { "asset": 1617772640000, - "meta": 1659424299266, + "meta": 1660530040916, "relativePath": "resources/effects/builtin-2d-spine.effect" }, "2874f8dd-416c-4440-81b7-555975426e93": { "asset": 1617772640000, - "meta": 1659424299275, + "meta": 1660530040923, "relativePath": "resources/effects/builtin-2d-sprite.effect" }, "829a282c-b049-4019-bd38-5ace8d8a6417": { "asset": 1617772640000, - "meta": 1659424299355, + "meta": 1660530041007, "relativePath": "resources/effects/builtin-3d-particle.effect" }, "2a7c0036-e0b3-4fe1-8998-89a54b8a2bec": { "asset": 1617772640000, - "meta": 1659424299376, + "meta": 1660530041024, "relativePath": "resources/effects/builtin-3d-trail.effect" }, "c0040c95-c57f-49cd-9cbc-12316b73d0d4": { "asset": 1617772640000, - "meta": 1659424299382, + "meta": 1660530041031, "relativePath": "resources/effects/builtin-clear-stencil.effect" }, "6d91e591-4ce0-465c-809f-610ec95019c6": { "asset": 1617772640000, - "meta": 1659424299413, + "meta": 1660530041045, "relativePath": "resources/effects/builtin-unlit.effect" }, "bbee2217-c261-49bd-a8ce-708d6bcc3500": { "asset": 1617772640000, - "meta": 1659424299417, + "meta": 1660530041046, "relativePath": "resources/materials" }, "6f801092-0c37-4f30-89ef-c8d960825b36": { "asset": 1617772640000, - "meta": 1659424299505, + "meta": 1660530041102, "relativePath": "resources/materials/builtin-2d-base.mtl" }, "a153945d-2511-4c14-be7b-05d242f47d57": { "asset": 1617772640000, - "meta": 1659424299506, + "meta": 1660530041117, "relativePath": "resources/materials/builtin-2d-graphics.mtl" }, "3a7bb79f-32fd-422e-ada2-96f518fed422": { "asset": 1617772640000, - "meta": 1659424299524, + "meta": 1660530041119, "relativePath": "resources/materials/builtin-2d-gray-sprite.mtl" }, "e02d87d4-e599-4d16-8001-e14891ac6506": { "asset": 1617772640000, - "meta": 1659424299524, + "meta": 1660530041122, "relativePath": "resources/materials/builtin-2d-label.mtl" }, "7afd064b-113f-480e-b793-8817d19f63c3": { "asset": 1617772640000, - "meta": 1659424299525, + "meta": 1660530041123, "relativePath": "resources/materials/builtin-2d-spine.mtl" }, "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432": { "asset": 1617772640000, - "meta": 1659424299526, + "meta": 1660530041124, "relativePath": "resources/materials/builtin-2d-sprite.mtl" }, "432fa09c-cf03-4cff-a186-982604408a07": { "asset": 1617772640000, - "meta": 1659424299530, + "meta": 1660530041125, "relativePath": "resources/materials/builtin-3d-particle.mtl" }, "466d4f9b-e5f4-4ea8-85d5-3c6e9a65658a": { "asset": 1617772640000, - "meta": 1659424299534, + "meta": 1660530041125, "relativePath": "resources/materials/builtin-3d-trail.mtl" }, "cf7e0bb8-a81c-44a9-ad79-d28d43991032": { "asset": 1617772640000, - "meta": 1659424299532, + "meta": 1660530041126, "relativePath": "resources/materials/builtin-clear-stencil.mtl" }, "2a296057-247c-4a1c-bbeb-0548b6c98650": { "asset": 1617772640000, - "meta": 1659424299537, + "meta": 1660530041127, "relativePath": "resources/materials/builtin-unlit.mtl" }, "954fec8b-cd16-4bb9-a3b7-7719660e7558": { "asset": 1617772640000, - "meta": 1659424301959, + "meta": 1660530043432, "relativePath": "model/primitives.fbx" }, "c35bb2f6-f24a-4850-ae44-643f2fdc7541": { @@ -710,13 +710,13 @@ "relativePath": "OP15/script/util.js" }, "316d56e4-880f-4338-9e6b-7db9e72ad09b": { - "asset": 1659342383855, - "meta": 1659342383867, + "asset": 1660530182535, + "meta": 1660530182540, "relativePath": "OP15/scene/OP15.fire" }, "ddbf4888-2678-4720-899f-a7e48a445d42": { - "asset": 1659424287498, - "meta": 1659424302550, + "asset": 1660530179166, + "meta": 1660530180565, "relativePath": "OP15/scene/OP15.js" } } \ No newline at end of file diff --git a/temp/quick-scripts/dst/__file_stats__.json b/temp/quick-scripts/dst/__file_stats__.json index 75cb228..3c0632f 100644 --- a/temp/quick-scripts/dst/__file_stats__.json +++ b/temp/quick-scripts/dst/__file_stats__.json @@ -1 +1 @@ -{"version":"1.0.8","stats":{"/Users/lmz/Documents/workspace/pro_hw/OP15/temp/quick-scripts/src/__qc_index__.js":"2022-08-02T07:11:42.746Z","/Users/lmz/Documents/workspace/pro_hw/OP15/temp/quick-scripts/src/assets/OP15/script/util.js":"2022-08-02T07:11:42.719Z","/Users/lmz/Documents/workspace/pro_hw/OP15/temp/quick-scripts/src/assets/OP15/script/state.js":"2022-08-02T07:11:42.717Z","/Users/lmz/Documents/workspace/pro_hw/OP15/temp/quick-scripts/src/assets/OP15/script/defaultData.js":"2022-08-02T07:11:42.722Z","/Users/lmz/Documents/workspace/pro_hw/OP15/temp/quick-scripts/src/assets/OP15/scene/OP15.js":"2022-08-02T07:11:42.726Z","/Users/lmz/Documents/workspace/pro_hw/OP15/temp/quick-scripts/src/assets/OP15/script/xstate.js":"2022-08-02T07:11:42.724Z"}} +{"version":"1.0.8","stats":{"/Users/lmz/Documents/workspace/pro_hw/OP15/temp/quick-scripts/src/__qc_index__.js":"2022-08-15T02:20:44.207Z","/Users/lmz/Documents/workspace/pro_hw/OP15/temp/quick-scripts/src/assets/OP15/script/state.js":"2022-08-15T02:20:44.179Z","/Users/lmz/Documents/workspace/pro_hw/OP15/temp/quick-scripts/src/assets/OP15/script/xstate.js":"2022-08-15T02:20:44.186Z","/Users/lmz/Documents/workspace/pro_hw/OP15/temp/quick-scripts/src/assets/OP15/scene/OP15.js":"2022-08-15T02:20:44.188Z","/Users/lmz/Documents/workspace/pro_hw/OP15/temp/quick-scripts/src/assets/OP15/script/util.js":"2022-08-15T02:20:44.180Z","/Users/lmz/Documents/workspace/pro_hw/OP15/temp/quick-scripts/src/assets/OP15/script/defaultData.js":"2022-08-15T02:20:44.182Z"}} diff --git a/temp/quick-scripts/dst/__qc_bundle__.js b/temp/quick-scripts/dst/__qc_bundle__.js index c798f13..d082b66 100644 --- a/temp/quick-scripts/dst/__qc_bundle__.js +++ b/temp/quick-scripts/dst/__qc_bundle__.js @@ -31,7 +31,7 @@ require('./assets/OP15/script/xstate'); (function() { var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/OP15/script/util.js'; + var __filename = 'preview-scripts/assets/OP15/script/state.js'; var __require = nodeEnv ? function (request) { return cc.require(request); } : function (request) { @@ -39,3269 +39,3245 @@ require('./assets/OP15/script/xstate'); }; function __define (exports, require, module) { if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, 'ade7a9A1W1Ah7vGKIj+9VNT', 'util'); -// OP15/script/util.js +cc._RF.push(module, '6acefvFAO9O7qvqEFnz5PJj', 'state'); +// OP15/script/state.js "use strict"; exports.__esModule = true; -exports.getPosByAngle = getPosByAngle; -exports.getAngleByPos = getAngleByPos; -exports.exchangeNodePos = exchangeNodePos; -exports.RandomInt = RandomInt; -exports.randomSortByArr = randomSortByArr; -exports.setSprNodeMaxLen = setSprNodeMaxLen; -exports.localPosTolocalPos = localPosTolocalPos; -exports.worldPosToLocalPos = worldPosToLocalPos; -exports.getScaleRateBy2Node = getScaleRateBy2Node; -exports.getDistance = getDistance; -exports.playAudioByUrl = playAudioByUrl; -exports.btnClickAnima = btnClickAnima; -exports.getSpriteFrimeByUrl = getSpriteFrimeByUrl; -exports.getSprNode = getSprNode; -exports.getSprNodeByUrl = getSprNodeByUrl; -exports.playAudio = playAudio; -exports.asyncDelay = asyncDelay; -exports.showFireworks = showFireworks; -exports.asyncTweenTo = asyncTweenTo; -exports.asyncTweenBy = asyncTweenBy; -exports.showTrebleFirework = showTrebleFirework; -exports.onHomeworkFinish = onHomeworkFinish; -exports.loadDragonBones = loadDragonBones; -exports.loadSpine = loadSpine; -exports.FireworkSettings = void 0; - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function getPosByAngle(angle, len) { - var radian = angle * Math.PI / 180; - var x = Math.sin(radian) * len; - var y = Math.cos(radian) * len; - return { - x: x, - y: y - }; -} - -function getAngleByPos(px, py, mx, my) { - var x = Math.abs(px - mx); - var y = Math.abs(py - my); - var z = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2)); - var cos = y / z; - var radina = Math.acos(cos); // 用å三角函数求弧度 - - var angle = Math.floor(180 / (Math.PI / radina) * 100) / 100; // å°†å¼§åº¦è½¬æ¢æˆè§’度 - - if (mx > px && my > py) { - // é¼ æ ‡åœ¨ç¬¬å››è±¡é™ - angle = 180 - angle; - } +exports.assign = o; +exports.createMachine = s; +exports.interpret = v; +exports.InterpreterStatus = void 0; - if (mx === px && my > py) { - // é¼ æ ‡åœ¨yè½´è´Ÿæ–¹å‘上 - angle = 180; - } +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. - if (mx > px && my === py) { - // é¼ æ ‡åœ¨xè½´æ£æ–¹å‘上 - angle = 90; - } +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. - if (mx < px && my > py) { - // é¼ æ ‡åœ¨ç¬¬ä¸‰è±¡é™ - angle = 180 + angle; - } +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ +function t(t, n) { + var e = "function" == typeof Symbol && t[Symbol.iterator]; + if (!e) return t; + var r, + o, + i = e.call(t), + a = []; - if (mx < px && my === py) { - // é¼ æ ‡åœ¨xè½´è´Ÿæ–¹å‘ - angle = 270; + try { + for (; (void 0 === n || n-- > 0) && !(r = i.next()).done;) { + a.push(r.value); + } + } catch (t) { + o = { + error: t + }; + } finally { + try { + r && !r.done && (e = i["return"]) && e.call(i); + } finally { + if (o) throw o.error; + } } - if (mx < px && my < py) { - // é¼ æ ‡åœ¨ç¬¬äºŒè±¡é™ - angle = 360 - angle; - } // console.log('angle: ', angle); - - - return angle; -} - -function exchangeNodePos(baseNode, targetNode) { - return baseNode.convertToNodeSpaceAR(targetNode._parent.convertToWorldSpaceAR(cc.v2(targetNode.x, targetNode.y))); + return a; } -function RandomInt(a, b) { - if (b === void 0) { - b = 0; - } +var n; +exports.InterpreterStatus = n; +!function (t) { + t[t.NotStarted = 0] = "NotStarted", t[t.Running = 1] = "Running", t[t.Stopped = 2] = "Stopped"; +}(n || (exports.InterpreterStatus = n = {})); +var e = { + type: "xstate.init" +}; - var max = Math.max(a, b); - var min = Math.min(a, b); - return Math.floor(Math.random() * (max - min) + min); +function r(t) { + return void 0 === t ? [] : [].concat(t); } -function randomSortByArr(arr) { - var newArr = []; - var tmpArr = arr.concat(); - - while (tmpArr.length > 0) { - var randomIndex = Math.floor(tmpArr.length * Math.random()); - newArr.push(tmpArr[randomIndex]); - tmpArr.splice(randomIndex, 1); - } - - return newArr; +function o(t) { + return { + type: "xstate.assign", + assignment: t + }; } -function setSprNodeMaxLen(sprNode, maxW, maxH) { - var sx = maxW / sprNode.width; - var sy = maxH / sprNode.height; - var s = Math.min(sx, sy); - sprNode.scale = Math.round(s * 1000) / 1000; +function i(t, n) { + return "string" == typeof (t = "string" == typeof t && n && n[t] ? n[t] : t) ? { + type: t + } : "function" == typeof t ? { + type: t.name, + exec: t + } : t; } -function localPosTolocalPos(baseNode, targetNode) { - var worldPos = targetNode.parent.convertToWorldSpaceAR(cc.v2(targetNode.x, targetNode.y)); - var localPos = baseNode.parent.convertToNodeSpaceAR(cc.v2(worldPos.x, worldPos.y)); - return localPos; +function a(t) { + return function (n) { + return t === n; + }; } -function worldPosToLocalPos(worldPos, baseNode) { - var localPos = baseNode.parent.convertToNodeSpaceAR(cc.v2(worldPos.x, worldPos.y)); - return localPos; +function u(t) { + return "string" == typeof t ? { + type: t + } : t; } -function getScaleRateBy2Node(baseNode, targetNode, maxFlag) { - if (maxFlag === void 0) { - maxFlag = true; - } +function c(t, n) { + return { + value: t, + context: n, + actions: [], + changed: !1, + matches: a(t) + }; +} - var worldRect1 = targetNode.getBoundingBoxToWorld(); - var worldRect2 = baseNode.getBoundingBoxToWorld(); - var sx = worldRect1.width / worldRect2.width; - var sy = worldRect1.height / worldRect2.height; +function f(t, n, e) { + var r = n, + o = !1; + return [t.filter(function (t) { + if ("xstate.assign" === t.type) { + o = !0; + var n = Object.assign({}, r); + return "function" == typeof t.assignment ? n = t.assignment(r, e) : Object.keys(t.assignment).forEach(function (o) { + n[o] = "function" == typeof t.assignment[o] ? t.assignment[o](r, e) : t.assignment[o]; + }), r = n, !1; + } - if (maxFlag) { - return Math.max(sx, sy); - } else { - return Math.min(sx, sy); - } + return !0; + }), r, o]; } -function getDistance(start, end) { - var pos = cc.v2(start.x - end.x, start.y - end.y); - var dis = Math.sqrt(pos.x * pos.x + pos.y * pos.y); - return dis; -} +function s(n, o) { + void 0 === o && (o = {}); + var s = t(f(r(n.states[n.initial].entry).map(function (t) { + return i(t, o.actions); + }), n.context, e), 2), + l = s[0], + v = s[1], + y = { + config: n, + _options: o, + initialState: { + value: n.initial, + actions: l, + context: v, + matches: a(n.initial) + }, + transition: function transition(e, o) { + var s, + l, + v = "string" == typeof e ? { + value: e, + context: n.context + } : e, + p = v.value, + g = v.context, + d = u(o), + x = n.states[p]; -function playAudioByUrl(audio_url, cb) { - if (cb === void 0) { - cb = null; - } + if (x.on) { + var m = r(x.on[d.type]); - if (audio_url) { - if (audio_url instanceof cc.AudioClip && audio_url.constructor.name == 'cc_AudioClip') { - var audioId = cc.audioEngine.play(audio_url, false, 0.8); + try { + for (var h = function (t) { + var n = "function" == typeof Symbol && Symbol.iterator, + e = n && t[n], + r = 0; + if (e) return e.call(t); + if (t && "number" == typeof t.length) return { + next: function next() { + return t && r >= t.length && (t = void 0), { + value: t && t[r++], + done: !t + }; + } + }; + throw new TypeError(n ? "Object is not iterable." : "Symbol.iterator is not defined."); + }(m), b = h.next(); !b.done; b = h.next()) { + var S = b.value; + if (void 0 === S) return c(p, g); - if (cb) { - cc.audioEngine.setFinishCallback(audioId, function () { - cb(); - }); - } - } else { - cc.assetManager.loadRemote(audio_url, function (err, audioClip) { - var audioId = cc.audioEngine.play(audioClip, false, 0.8); + var w = "string" == typeof S ? { + target: S + } : S, + j = w.target, + E = w.actions, + R = void 0 === E ? [] : E, + N = w.cond, + O = void 0 === N ? function () { + return !0; + } : N, + _ = void 0 === j, + k = null != j ? j : p, + T = n.states[k]; - if (cb) { - cc.audioEngine.setFinishCallback(audioId, function () { - cb(); - }); + if (O(g, d)) { + var q = t(f((_ ? r(R) : [].concat(x.exit, R, T.entry).filter(function (t) { + return t; + })).map(function (t) { + return i(t, y._options.actions); + }), g, d), 3), + z = q[0], + A = q[1], + B = q[2], + C = null != j ? j : p; + return { + value: C, + context: A, + actions: z, + changed: j !== p || z.length > 0 || B, + matches: a(C) + }; + } + } + } catch (t) { + s = { + error: t + }; + } finally { + try { + b && !b.done && (l = h["return"]) && l.call(h); + } finally { + if (s) throw s.error; + } } - }); + } + + return c(p, g); } - } + }; + return y; } -function btnClickAnima(btn, time, rate) { - if (time === void 0) { - time = 0.15; - } +var l = function l(t, n) { + return t.actions.forEach(function (e) { + var r = e.exec; + return r && r(t.context, n); + }); +}; - if (rate === void 0) { - rate = 1.05; - } +function v(t) { + var r = t.initialState, + o = n.NotStarted, + i = new Set(), + c = { + _machine: t, + send: function send(e) { + o === n.Running && (r = t.transition(r, e), l(r, u(e)), i.forEach(function (t) { + return t(r); + })); + }, + subscribe: function subscribe(t) { + return i.add(t), t(r), { + unsubscribe: function unsubscribe() { + return i["delete"](t); + } + }; + }, + start: function start(i) { + if (i) { + var u = "object" == typeof i ? i : { + context: t.config.context, + value: i + }; + r = { + value: u.value, + actions: [], + context: u.context, + matches: a(u.value) + }; + } - btn.tmpScale = btn.scale; - btn.on(cc.Node.EventType.TOUCH_START, function () { - cc.tween(btn).to(time / 2, { - scale: btn.scale * rate - }).start(); - }); - btn.on(cc.Node.EventType.TOUCH_CANCEL, function () { - cc.tween(btn).to(time / 2, { - scale: btn.tmpScale - }).start(); - }); - btn.on(cc.Node.EventType.TOUCH_END, function () { - cc.tween(btn).to(time / 2, { - scale: btn.tmpScale - }).start(); - }); -} + return o = n.Running, l(r, e), c; + }, + stop: function stop() { + return o = n.Stopped, i.clear(), c; + }, -function getSpriteFrimeByUrl(url, cb) { - cc.loader.load({ - url: url - }, function (err, img) { - var spriteFrame = new cc.SpriteFrame(img); + get state() { + return r; + }, - if (cb) { - cb(spriteFrame); + get status() { + return o; } - }); -} -function getSprNode(resName) { - var sf = cc.find('Canvas/res/img/' + resName).getComponent(cc.Sprite).spriteFrame; - var node = new cc.Node(); - node.addComponent(cc.Sprite).spriteFrame = sf; - return node; + }; + return c; } -function getSprNodeByUrl(url, cb) { - var node = new cc.Node(); - var spr = node.addComponent(cc.Sprite); - getSpriteFrimeByUrl(url, function (sf) { - spr.spriteFrame = sf; +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0cy9PUDE1L3NjcmlwdC9zdGF0ZS5qcyJdLCJuYW1lcyI6WyJ0IiwibiIsImUiLCJTeW1ib2wiLCJpdGVyYXRvciIsInIiLCJvIiwiaSIsImNhbGwiLCJhIiwibmV4dCIsImRvbmUiLCJwdXNoIiwidmFsdWUiLCJlcnJvciIsIk5vdFN0YXJ0ZWQiLCJSdW5uaW5nIiwiU3RvcHBlZCIsInR5cGUiLCJjb25jYXQiLCJhc3NpZ25tZW50IiwibmFtZSIsImV4ZWMiLCJ1IiwiYyIsImNvbnRleHQiLCJhY3Rpb25zIiwiY2hhbmdlZCIsIm1hdGNoZXMiLCJmIiwiZmlsdGVyIiwiT2JqZWN0IiwiYXNzaWduIiwia2V5cyIsImZvckVhY2giLCJzIiwic3RhdGVzIiwiaW5pdGlhbCIsImVudHJ5IiwibWFwIiwibCIsInYiLCJ5IiwiY29uZmlnIiwiX29wdGlvbnMiLCJpbml0aWFsU3RhdGUiLCJ0cmFuc2l0aW9uIiwicCIsImciLCJkIiwieCIsIm9uIiwibSIsImgiLCJsZW5ndGgiLCJUeXBlRXJyb3IiLCJiIiwiUyIsInciLCJ0YXJnZXQiLCJqIiwiRSIsIlIiLCJOIiwiY29uZCIsIk8iLCJfIiwiayIsIlQiLCJxIiwiZXhpdCIsInoiLCJBIiwiQiIsIkMiLCJTZXQiLCJfbWFjaGluZSIsInNlbmQiLCJzdWJzY3JpYmUiLCJhZGQiLCJ1bnN1YnNjcmliZSIsInN0YXJ0Iiwic3RvcCIsImNsZWFyIiwic3RhdGUiLCJzdGF0dXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLENBQVQsQ0FBV0EsQ0FBWCxFQUFhQyxDQUFiLEVBQWU7QUFBQyxNQUFJQyxDQUFDLEdBQUMsY0FBWSxPQUFPQyxNQUFuQixJQUEyQkgsQ0FBQyxDQUFDRyxNQUFNLENBQUNDLFFBQVIsQ0FBbEM7QUFBb0QsTUFBRyxDQUFD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LFNBQTNCO0FBQThERixRQUFBQSxDQUFDLEdBQUM7QUFBQ1EsVUFBQUEsS0FBSyxFQUFDVSxDQUFDLENBQUNWLEtBQVQ7QUFBZWEsVUFBQUEsT0FBTyxFQUFDLEVBQXZCO0FBQTBCRCxVQUFBQSxPQUFPLEVBQUNGLENBQUMsQ0FBQ0UsT0FBcEM7QUFBNENHLFVBQUFBLE9BQU8sRUFBQ25CLENBQUMsQ0FBQ2MsQ0FBQyxDQUFDVixLQUFIO0FBQXJELFNBQUY7QUFBa0U7O0FBQUEsYUFBT1AsQ0FBQyxHQUFDTCxDQUFDLENBQUNlLE9BQUosRUFBWXdCLENBQUMsQ0FBQ25DLENBQUQsRUFBR0gsQ0FBSCxDQUFiLEVBQW1Cc0IsQ0FBMUI7QUFBNEIsS0FBaFk7QUFBaVkwRCxJQUFBQSxJQUFJLEVBQUMsZ0JBQVU7QUFBQyxhQUFPNUUsQ0FBQyxHQUFDTCxDQUFDLENBQUNnQixPQUFKLEVBQVlWLENBQUMsQ0FBQzRFLEtBQUYsRUFBWixFQUFzQjNELENBQTdCO0FBQStCLEtBQWhiOztBQUFpYixRQUFJNEQsS0FBSixHQUFXO0FBQUMsYUFBTy9FLENBQVA7QUFBUyxLQUF0Yzs7QUFBdWMsUUFBSWdGLE1BQUosR0FBWTtBQUFDLGFBQU8vRSxDQUFQO0FBQVM7O0FBQTdkLEdBQWhEO0FBQStnQixTQUFPa0IsQ0FBUDtBQUFTIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvKiEgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbkNvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxuXG5QZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcbnB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cblxuVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxuUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXG5BTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXG5JTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cbkxPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXG5PVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXG5QRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cbmZ1bmN0aW9uIHQodCxuKXt2YXIgZT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJnRbU3ltYm9sLml0ZXJhdG9yXTtpZighZSlyZXR1cm4gdDt2YXIgcixvLGk9ZS5jYWxsKHQpLGE9W107dHJ5e2Zvcig7KHZvaWQgMD09PW58fG4tLSA+MCkmJiEocj1pLm5leHQoKSkuZG9uZTspYS5wdXNoKHIudmFsdWUpfWNhdGNoKHQpe289e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e3ImJiFyLmRvbmUmJihlPWkucmV0dXJuKSYmZS5jYWxsKGkpfWZpbmFsbHl7aWYobyl0aHJvdyBvLmVycm9yfX1yZXR1cm4gYX12YXIgbjshZnVuY3Rpb24odCl7dFt0Lk5vdFN0YXJ0ZWQ9MF09XCJOb3RTdGFydGVkXCIsdFt0LlJ1bm5pbmc9MV09XCJSdW5uaW5nXCIsdFt0LlN0b3BwZWQ9Ml09XCJTdG9wcGVkXCJ9KG58fChuPXt9KSk7dmFyIGU9e3R5cGU6XCJ4c3RhdGUuaW5pdFwifTtmdW5jdGlvbiByKHQpe3JldHVybiB2b2lkIDA9PT10P1tdOltdLmNvbmNhdCh0KX1mdW5jdGlvbiBvKHQpe3JldHVybnt0eXBlOlwieHN0YXRlLmFzc2lnblwiLGFzc2lnbm1lbnQ6dH19ZnVuY3Rpb24gaSh0LG4pe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZih0PVwic3RyaW5nXCI9PXR5cGVvZiB0JiZuJiZuW3RdP25bdF06dCk/e3R5cGU6dH06XCJmdW5jdGlvblwiPT10eXBlb2YgdD97dHlwZTp0Lm5hbWUsZXhlYzp0fTp0fWZ1bmN0aW9uIGEodCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiB0PT09bn19ZnVuY3Rpb24gdSh0KXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgdD97dHlwZTp0fTp0fWZ1bmN0aW9uIGModCxuKXtyZXR1cm57dmFsdWU6dCxjb250ZXh0Om4sYWN0aW9uczpbXSxjaGFuZ2VkOiExLG1hdGNoZXM6YSh0KX19ZnVuY3Rpb24gZih0LG4sZSl7dmFyIHI9bixvPSExO3JldHVyblt0LmZpbHRlcigoZnVuY3Rpb24odCl7aWYoXCJ4c3RhdGUuYXNzaWduXCI9PT10LnR5cGUpe289ITA7dmFyIG49T2JqZWN0LmFzc2lnbih7fSxyKTtyZXR1cm5cImZ1bmN0aW9uXCI9PXR5cGVvZiB0LmFzc2lnbm1lbnQ/bj10LmFzc2lnbm1lbnQocixlKTpPYmplY3Qua2V5cyh0LmFzc2lnbm1lbnQpLmZvckVhY2goKGZ1bmN0aW9uKG8pe25bb109XCJmdW5jdGlvblwiPT10eXBlb2YgdC5hc3NpZ25tZW50W29dP3QuYXNzaWdubWVudFtvXShyLGUpOnQuYXNzaWdubWVudFtvXX0pKSxyPW4sITF9cmV0dXJuITB9KSkscixvXX1mdW5jdGlvbiBzKG4sbyl7dm9pZCAwPT09byYmKG89e30pO3ZhciBzPXQoZihyKG4uc3RhdGVzW24uaW5pdGlhbF0uZW50cnkpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGkodCxvLmFjdGlvbnMpfSkpLG4uY29udGV4dCxlKSwyKSxsPXNbMF0sdj1zWzFdLHk9e2NvbmZpZzpuLF9vcHRpb25zOm8saW5pdGlhbFN0YXRlOnt2YWx1ZTpuLmluaXRpYWwsYWN0aW9uczpsLGNvbnRleHQ6dixtYXRjaGVzOmEobi5pbml0aWFsKX0sdHJhbnNpdGlvbjpmdW5jdGlvbihlLG8pe3ZhciBzLGwsdj1cInN0cmluZ1wiPT10eXBlb2YgZT97dmFsdWU6ZSxjb250ZXh0Om4uY29udGV4dH06ZSxwPXYudmFsdWUsZz12LmNvbnRleHQsZD11KG8pLHg9bi5zdGF0ZXNbcF07aWYoeC5vbil7dmFyIG09cih4Lm9uW2QudHlwZV0pO3RyeXtmb3IodmFyIGg9ZnVuY3Rpb24odCl7dmFyIG49XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3IsZT1uJiZ0W25dLHI9MDtpZihlKXJldHVybiBlLmNhbGwodCk7aWYodCYmXCJudW1iZXJcIj09dHlwZW9mIHQubGVuZ3RoKXJldHVybntuZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIHQmJnI+PXQubGVuZ3RoJiYodD12b2lkIDApLHt2YWx1ZTp0JiZ0W3IrK10sZG9uZTohdH19fTt0aHJvdyBuZXcgVHlwZUVycm9yKG4/XCJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLlwiOlwiU3ltYm9sLml0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKX0obSksYj1oLm5leHQoKTshYi5kb25lO2I9aC5uZXh0KCkpe3ZhciBTPWIudmFsdWU7aWYodm9pZCAwPT09UylyZXR1cm4gYyhwLGcpO3ZhciB3PVwic3RyaW5nXCI9PXR5cGVvZiBTP3t0YXJnZXQ6U306UyxqPXcudGFyZ2V0LEU9dy5hY3Rpb25zLFI9dm9pZCAwPT09RT9bXTpFLE49dy5jb25kLE89dm9pZCAwPT09Tj9mdW5jdGlvbigpe3JldHVybiEwfTpOLF89dm9pZCAwPT09aixrPW51bGwhPWo/ajpwLFQ9bi5zdGF0ZXNba107aWYoTyhnLGQpKXt2YXIgcT10KGYoKF8/cihSKTpbXS5jb25jYXQoeC5leGl0LFIsVC5lbnRyeSkuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdH0pKSkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gaSh0LHkuX29wdGlvbnMuYWN0aW9ucyl9KSksZyxkKSwzKSx6PXFbMF0sQT1xWzFdLEI9cVsyXSxDPW51bGwhPWo/ajpwO3JldHVybnt2YWx1ZTpDLGNvbnRleHQ6QSxhY3Rpb25zOnosY2hhbmdlZDpqIT09cHx8ei5sZW5ndGg+MHx8QixtYXRjaGVzOmEoQyl9fX19Y2F0Y2godCl7cz17ZXJyb3I6dH19ZmluYWxseXt0cnl7YiYmIWIuZG9uZSYmKGw9aC5yZXR1cm4pJiZsLmNhbGwoaCl9ZmluYWxseXtpZihzKXRocm93IHMuZXJyb3J9fX1yZXR1cm4gYyhwLGcpfX07cmV0dXJuIHl9dmFyIGw9ZnVuY3Rpb24odCxuKXtyZXR1cm4gdC5hY3Rpb25zLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciByPWUuZXhlYztyZXR1cm4gciYmcih0LmNvbnRleHQsbil9KSl9O2Z1bmN0aW9uIHYodCl7dmFyIHI9dC5pbml0aWFsU3RhdGUsbz1uLk5vdFN0YXJ0ZWQsaT1uZXcgU2V0LGM9e19tYWNoaW5lOnQsc2VuZDpmdW5jdGlvbihlKXtvPT09bi5SdW5uaW5nJiYocj10LnRyYW5zaXRpb24ocixlKSxsKHIsdShlKSksaS5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gdChyKX0pKSl9LHN1YnNjcmliZTpmdW5jdGlvbih0KXtyZXR1cm4gaS5hZGQodCksdChyKSx7dW5zdWJzY3JpYmU6ZnVuY3Rpb24oKXtyZXR1cm4gaS5kZWxldGUodCl9fX0sc3RhcnQ6ZnVuY3Rpb24oaSl7aWYoaSl7dmFyIHU9XCJvYmplY3RcIj09dHlwZW9mIGk/aTp7Y29udGV4dDp0LmNvbmZpZy5jb250ZXh0LHZhbHVlOml9O3I9e3ZhbHVlOnUudmFsdWUsYWN0aW9uczpbXSxjb250ZXh0OnUuY29udGV4dCxtYXRjaGVzOmEodS52YWx1ZSl9fXJldHVybiBvPW4uUnVubmluZyxsKHIsZSksY30sc3RvcDpmdW5jdGlvbigpe3JldHVybiBvPW4uU3RvcHBlZCxpLmNsZWFyKCksY30sZ2V0IHN0YXRlKCl7cmV0dXJuIHJ9LGdldCBzdGF0dXMoKXtyZXR1cm4gb319O3JldHVybiBjfWV4cG9ydHtuIGFzIEludGVycHJldGVyU3RhdHVzLG8gYXMgYXNzaWduLHMgYXMgY3JlYXRlTWFjaGluZSx2IGFzIGludGVycHJldH07XG4iXX0= +//------QC-SOURCE-SPLIT------ - if (cb) { - cb(spr); - } - }); -} + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/OP15/script/xstate.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}(function (global){ +"use strict"; +cc._RF.push(module, 'ccc6ebxJZFI24GNYY/uty5V', 'xstate'); +// OP15/script/xstate.js -function playAudio(audioClip, cb) { - if (cb === void 0) { - cb = null; - } +"use strict"; - if (audioClip) { - var audioId = cc.audioEngine.playEffect(audioClip, false, 0.8); +!function (t, e) { + "object" == typeof exports && "undefined" != typeof module ? e(exports) : "function" == typeof define && define.amd ? define(["exports"], e) : e((t = "undefined" != typeof globalThis ? globalThis : t || self).XState = {}); +}(void 0, function (t) { + "use strict"; + /*! ***************************************************************************** + Copyright (c) Microsoft Corporation. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + ***************************************************************************** */ - if (cb) { - cc.audioEngine.setFinishCallback(audioId, function () { - cb(); - }); - } - } -} + var _e = function e() { + return (_e = Object.assign || function (t) { + for (var e, n = 1, r = arguments.length; n < r; n++) { + for (var i in e = arguments[n]) { + Object.prototype.hasOwnProperty.call(e, i) && (t[i] = e[i]); + } + } -function asyncDelay(_x) { - return _asyncDelay.apply(this, arguments); -} + return t; + }).apply(this, arguments); + }; -function _asyncDelay() { - _asyncDelay = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(time) { - return regeneratorRuntime.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - return _context.abrupt("return", new Promise(function (resolve, reject) { - try { - setTimeout(function () { - resolve(); - }, time * 1000); - } catch (e) { - reject(e); - } - })); - - case 1: - case "end": - return _context.stop(); - } - } - }, _callee); - })); - return _asyncDelay.apply(this, arguments); -} + function n(t, e) { + var n = {}; -var FireworkSettings = /*#__PURE__*/function () { - // 父节点 - // ç«èŠ±èŠ‚ç‚¹çš„array - // å‘射点 - // å‘å°„æ–¹å‘ - // 扩散范围 - // å‘å°„æ•°é‡ - // 缩放范围 - function FireworkSettings(baseNode, nodeList, pos, side, range, number, scalseRange) { - if (pos === void 0) { - pos = cc.v2(0, 0); + for (var r in t) { + Object.prototype.hasOwnProperty.call(t, r) && e.indexOf(r) < 0 && (n[r] = t[r]); } - if (side === void 0) { - side = cc.v2(0, 100); - } + if (null != t && "function" == typeof Object.getOwnPropertySymbols) { + var i = 0; - if (range === void 0) { - range = 50; + for (r = Object.getOwnPropertySymbols(t); i < r.length; i++) { + e.indexOf(r[i]) < 0 && Object.prototype.propertyIsEnumerable.call(t, r[i]) && (n[r[i]] = t[r[i]]); + } } - if (number === void 0) { - number = 100; - } + return n; + } - if (scalseRange === void 0) { - scalseRange = 0; + function r(t) { + var e = "function" == typeof Symbol && Symbol.iterator, + n = e && t[e], + r = 0; + if (n) return n.call(t); + if (t && "number" == typeof t.length) return { + next: function next() { + return t && r >= t.length && (t = void 0), { + value: t && t[r++], + done: !t + }; + } + }; + throw new TypeError(e ? "Object is not iterable." : "Symbol.iterator is not defined."); + } + + function i(t, e) { + var n = "function" == typeof Symbol && t[Symbol.iterator]; + if (!n) return t; + var r, + i, + o = n.call(t), + a = []; + + try { + for (; (void 0 === e || e-- > 0) && !(r = o.next()).done;) { + a.push(r.value); + } + } catch (t) { + i = { + error: t + }; + } finally { + try { + r && !r.done && (n = o["return"]) && n.call(o); + } finally { + if (i) throw i.error; + } } - this.baseNode = void 0; - this.nodeList = void 0; - this.pos = void 0; - this.side = void 0; - this.range = void 0; - this.number = void 0; - this.scalseRange = void 0; - this.baseNode = baseNode; - this.nodeList = nodeList; - this.pos = pos; - this.side = side; - this.range = range; - this.number = number; - this.scalseRange = scalseRange; + return a; } - FireworkSettings.copy = function copy(firework) { - return new FireworkSettings(firework.baseNode, firework.nodeList, firework.pos, firework.side, firework.range, firework.number); - }; + function o(t, e, n) { + if (n || 2 === arguments.length) for (var r, i = 0, o = e.length; i < o; i++) { + !r && i in e || (r || (r = Array.prototype.slice.call(e, 0, i)), r[i] = e[i]); + } + return t.concat(r || Array.prototype.slice.call(e)); + } - return FireworkSettings; -}(); + var a = {}; -exports.FireworkSettings = FireworkSettings; + function s(t) { + return Object.keys(t); + } -function showFireworks(_x2) { - return _showFireworks.apply(this, arguments); -} + function c(t, e, n) { + void 0 === n && (n = "."); + var r = f(t, n), + i = f(e, n); + return A(i) ? !!A(r) && i === r : A(r) ? r in i : s(r).every(function (t) { + return t in i && c(r[t], i[t]); + }); + } -function _showFireworks() { - _showFireworks = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3(fireworkSettings) { - var baseNode, nodeList, pos, side, range, number, scalseRange; - return regeneratorRuntime.wrap(function _callee3$(_context3) { - while (1) { - switch (_context3.prev = _context3.next) { - case 0: - baseNode = fireworkSettings.baseNode, nodeList = fireworkSettings.nodeList, pos = fireworkSettings.pos, side = fireworkSettings.side, range = fireworkSettings.range, number = fireworkSettings.number, scalseRange = fireworkSettings.scalseRange; - new Array(number).fill(' ').forEach( /*#__PURE__*/function () { - var _ref3 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(_, i) { - var rabbonNode, node, rate, angle; - return regeneratorRuntime.wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - rabbonNode = new cc.Node(); - rabbonNode.parent = baseNode; - rabbonNode.x = pos.x; - rabbonNode.y = pos.y; - rabbonNode.angle = 60 * Math.random() - 30; - node = cc.instantiate(nodeList[RandomInt(nodeList.length)]); - node.parent = rabbonNode; - node.active = true; - node.x = 0; - node.y = 0; - node.angle = 0; - node.scale = (Math.random() - 0.5) * scalseRange + 1; - rate = Math.random(); - angle = Math.PI * (Math.random() * 2 - 1); - _context2.next = 16; - return asyncTweenBy(rabbonNode, 0.3, { - x: side.x * rate + Math.cos(angle) * range * rate, - y: side.y * rate + Math.sin(angle) * range * rate - }, { - easing: 'quadIn' - }); + function u(t) { + try { + return A(t) || "number" == typeof t ? "".concat(t) : t.type; + } catch (t) { + throw new Error("Events must be strings or objects with a string event.type property."); + } + } - case 16: - cc.tween(rabbonNode).by(8, { - y: -2000 - }).start(); - cc.tween(rabbonNode).to(5, { - scale: (Math.random() - 0.5) * scalseRange + 1 - }).start(); - rabbonFall(rabbonNode); - _context2.next = 21; - return asyncDelay(Math.random()); + function h(t, e) { + try { + return T(t) ? t : t.toString().split(e); + } catch (e) { + throw new Error("'".concat(t, "' is not a valid state path.")); + } + } - case 21: - cc.tween(node).by(0.15, { - x: -10, - angle: -10 - }).by(0.3, { - x: 20, - angle: 20 - }).by(0.15, { - x: -10, - angle: -10 - }).union().repeatForever().start(); - cc.tween(rabbonNode).delay(5).to(0.3, { - opacity: 0 - }).call(function () { - node.stopAllActions(); - node.active = false; - node.parent = null; - node = null; - }).start(); + function f(t, e) { + return "object" == typeof (n = t) && "value" in n && "context" in n && "event" in n && "_event" in n ? t.value : T(t) ? l(t) : "string" != typeof t ? t : l(h(t, e)); + var n; + } - case 23: - case "end": - return _context2.stop(); - } - } - }, _callee2); - })); + function l(t) { + if (1 === t.length) return t[0]; - return function (_x12, _x13) { - return _ref3.apply(this, arguments); - }; - }()); + for (var e = {}, n = e, r = 0; r < t.length - 1; r++) { + r === t.length - 2 ? n[t[r]] = t[r + 1] : (n[t[r]] = {}, n = n[t[r]]); + } - case 2: - case "end": - return _context3.stop(); - } - } - }, _callee3); - })); - return _showFireworks.apply(this, arguments); -} + return e; + } -function rabbonFall(_x3) { - return _rabbonFall.apply(this, arguments); -} + function d(t, e) { + for (var n = {}, r = s(t), i = 0; i < r.length; i++) { + var o = r[i]; + n[o] = e(t[o], o, t, i); + } -function _rabbonFall() { - _rabbonFall = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4(node) { - var time, offsetX; - return regeneratorRuntime.wrap(function _callee4$(_context4) { - while (1) { - switch (_context4.prev = _context4.next) { - case 0: - time = 1 + Math.random(); - offsetX = RandomInt(-200, 200) * time; - _context4.next = 4; - return asyncTweenBy(node, time, { - x: offsetX, - angle: offsetX * 60 / 200 - }); + return n; + } - case 4: - rabbonFall(node); + function p(t, e, n) { + var i, + o, + a = {}; - case 5: - case "end": - return _context4.stop(); - } + try { + for (var c = r(s(t)), u = c.next(); !u.done; u = c.next()) { + var h = u.value, + f = t[h]; + n(f) && (a[h] = e(f, h, t)); } - }, _callee4); - })); - return _rabbonFall.apply(this, arguments); -} - -function asyncTweenTo(_x4, _x5, _x6, _x7) { - return _asyncTweenTo.apply(this, arguments); -} + } catch (t) { + i = { + error: t + }; + } finally { + try { + u && !u.done && (o = c["return"]) && o.call(c); + } finally { + if (i) throw i.error; + } + } -function _asyncTweenTo() { - _asyncTweenTo = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee5(node, duration, obj, ease) { - return regeneratorRuntime.wrap(function _callee5$(_context5) { - while (1) { - switch (_context5.prev = _context5.next) { - case 0: - if (ease === void 0) { - ease = undefined; - } + return a; + } - return _context5.abrupt("return", new Promise(function (resolve, reject) { - try { - cc.tween(node).to(duration, obj, ease).call(function () { - resolve(); - }).start(); - } catch (e) { - reject(e); - } - })); + var v = function v(t) { + return function (e) { + var n, + i, + o = e; - case 2: - case "end": - return _context5.stop(); + try { + for (var a = r(t), s = a.next(); !s.done; s = a.next()) { + o = o[s.value]; + } + } catch (t) { + n = { + error: t + }; + } finally { + try { + s && !s.done && (i = a["return"]) && i.call(a); + } finally { + if (n) throw n.error; } } - }, _callee5); - })); - return _asyncTweenTo.apply(this, arguments); -} - -function asyncTweenBy(_x8, _x9, _x10, _x11) { - return _asyncTweenBy.apply(this, arguments); -} -function _asyncTweenBy() { - _asyncTweenBy = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee6(node, duration, obj, ease) { - return regeneratorRuntime.wrap(function _callee6$(_context6) { - while (1) { - switch (_context6.prev = _context6.next) { - case 0: - if (ease === void 0) { - ease = undefined; - } + return o; + }; + }; - return _context6.abrupt("return", new Promise(function (resolve, reject) { - try { - cc.tween(node).by(duration, obj, ease).call(function () { - resolve(); - }).start(); - } catch (e) { - reject(e); - } - })); + function y(t) { + return t ? A(t) ? [[t]] : g(s(t).map(function (e) { + var n = t[e]; + return "string" == typeof n || n && Object.keys(n).length ? y(t[e]).map(function (t) { + return [e].concat(t); + }) : [[e]]; + })) : [[]]; + } - case 2: - case "end": - return _context6.stop(); - } - } - }, _callee6); - })); - return _asyncTweenBy.apply(this, arguments); -} + function g(t) { + var e; + return (e = []).concat.apply(e, o([], i(t), !1)); + } -function showTrebleFirework(baseNode, rabbonList) { - var middle = new FireworkSettings(baseNode, rabbonList); - middle.pos = cc.v2(0, -400); - middle.side = cc.v2(0, 1000); - middle.range = 200; - middle.number = 100; - middle.scalseRange = 0.4; - var left = FireworkSettings.copy(middle); - left.pos = cc.v2(-600, -400); - left.side = cc.v2(200, 1000); - var right = FireworkSettings.copy(middle); - right.pos = cc.v2(600, -400); - right.side = cc.v2(-200, 1000); - showFireworks(middle); - showFireworks(left); - showFireworks(right); -} + function m(t) { + return T(t) ? t : [t]; + } -function onHomeworkFinish() { - var middleLayer = cc.find('middleLayer'); + function S(t) { + return void 0 === t ? [] : m(t); + } - if (middleLayer) { - var middleLayerComponent = middleLayer.getComponent('middleLayer'); + function x(t, e, n) { + var i, o; + if (N(t)) return t(e, n.data); + var a = {}; - if (middleLayerComponent.role == 'student') { - middleLayerComponent.onHomeworkFinish(function () {}); + try { + for (var s = r(Object.keys(t)), c = s.next(); !c.done; c = s.next()) { + var u = c.value, + h = t[u]; + N(h) ? a[u] = h(e, n.data) : a[u] = h; + } + } catch (t) { + i = { + error: t + }; + } finally { + try { + c && !c.done && (o = s["return"]) && o.call(s); + } finally { + if (i) throw i.error; + } } - } else { - console.log('onHomeworkFinish'); + + return a; } -} -function loadDragonBones(dragonDisplay, _ref) { - var tex = _ref.tex, - atlas = _ref.atlas, - ske = _ref.ske; - return new Promise(function (resolve, reject) { - cc.loader.load({ - url: tex, - type: 'png' - }, function (error, texture) { - if (error) { - reject(); - return; + function w(t) { + return t instanceof Promise || !(null === t || !N(t) && "object" != typeof t || !N(t.then)); + } + + function b(t, e) { + var n, + o, + a = i([[], []], 2), + s = a[0], + c = a[1]; + + try { + for (var u = r(t), h = u.next(); !h.done; h = u.next()) { + var f = h.value; + e(f) ? s.push(f) : c.push(f); + } + } catch (t) { + n = { + error: t + }; + } finally { + try { + h && !h.done && (o = u["return"]) && o.call(u); + } finally { + if (n) throw n.error; } + } - cc.loader.load({ - url: atlas, - type: 'txt' - }, function (error, atlasJson) { - if (error) { - reject(); - return; - } + return [s, c]; + } - cc.loader.load({ - url: ske, - type: 'txt' - }, function (error, dragonBonesJson) { - if (error) { - reject(); - return; - } + function _(t, e) { + return d(t.states, function (t, n) { + if (t) { + var r = (A(e) ? void 0 : e[n]) || (t ? t.current : void 0); + if (r) return { + current: r, + states: _(t, r) + }; + } + }); + } - var atlasObj = new dragonBones.DragonBonesAtlasAsset(); - atlasObj.uuid = atlas; - atlasObj.atlasJson = atlasJson; - atlasObj.texture = texture; - var asset = new dragonBones.DragonBonesAsset(); - asset.uuid = ske; - asset.dragonBonesJson = dragonBonesJson; - var armatureName = asset._dragonBonesJsonData.armature[0].name || 'default'; - dragonDisplay.armatureName = armatureName; - dragonDisplay.dragonAtlasAsset = atlasObj; - dragonDisplay.dragonAsset = asset; - resolve(asset._dragonBonesJsonData.armature[0].aabb); - }); - }); - }); - }); -} + function E(t, e, n, i) { + return t ? n.reduce(function (t, n) { + var o, + a, + c = n.assignment, + u = { + state: i, + action: n, + _event: e + }, + h = {}; + if (N(c)) h = c(t, e.data, u);else try { + for (var f = r(s(c)), l = f.next(); !l.done; l = f.next()) { + var d = l.value, + p = c[d]; + h[d] = N(p) ? p(t, e.data, u) : p; + } + } catch (t) { + o = { + error: t + }; + } finally { + try { + l && !l.done && (a = f["return"]) && a.call(f); + } finally { + if (o) throw o.error; + } + } + return Object.assign({}, t, h); + }, t) : t; + } -function loadSpine(skeleton, picName, _ref2) { - var tex = _ref2.tex, - atlas = _ref2.atlas, - ske = _ref2.ske; - return new Promise(function (resolve, reject) { - // cc.loader.load({ url: tex, type: 'png' }, (error, texture) => { - cc.assetManager.loadRemote(tex, function (error, texture) { - if (error) { - reject(); - return; - } // cc.loader.load({ url: atlas, type: 'txt' }, (error, atlasJson) => { + function T(t) { + return Array.isArray(t); + } + function N(t) { + return "function" == typeof t; + } - cc.assetManager.loadAny({ - url: atlas - }, function (error, atlasJson) { - if (error) { - reject(); - return; - } // cc.loader.load({ url: ske, type: 'txt' }, (error, dragonBonesJson) => { + function A(t) { + return "string" == typeof t; + } + function O(t, e) { + if (t) return A(t) ? { + type: "xstate.guard", + name: t, + predicate: e ? e[t] : void 0 + } : N(t) ? { + type: "xstate.guard", + name: t.name, + predicate: t + } : t; + } - cc.assetManager.loadAny({ - url: ske - }, function (error, dragonBonesJson) { - if (error) { - reject(); - return; - } + var P = function () { + return "function" == typeof Symbol && Symbol.observable || "@@observable"; + }(); - var asset = new sp.SkeletonData(); - asset._uuid = ske; - asset.skeletonJson = JSON.stringify(dragonBonesJson); - asset.atlasText = atlasJson; - asset.textures = [texture]; - asset.textureNames = [picName]; - console.log('picName: ', picName); - skeleton.skeletonData = asset; - var jsonObj = dragonBonesJson; //JSON.parse( assets[1]); + function k(t) { + try { + return "__xstatenode" in t; + } catch (t) { + return !1; + } + } - var animationNameObj = jsonObj.animations; - var animationNames = []; + var I, + j, + C = function () { + var t = 0; + return function () { + return (++t).toString(16); + }; + }(); - for (var name in animationNameObj) { - console.log('name~~: ', name); - animationNames.push(name); - } + function V(t, n) { + return A(t) || "number" == typeof t ? _e({ + type: t + }, n) : t; + } - console.log("skeleton.animation: ", skeleton.animation); - skeleton.animationNames = animationNames; - skeleton.loop = false; - console.log("jsonObj['skeleton'] : ", jsonObj['skeleton']); - resolve(jsonObj['skeleton']); // const atlasObj = new dragonBones.DragonBonesAtlasAsset() - // atlasObj.uuid = atlas - // atlasObj.atlasJson = atlasJson - // atlasObj.texture = texture - // const asset = new dragonBones.DragonBonesAsset() - // asset.uuid = ske - // asset.dragonBonesJson = dragonBonesJson; - // const armatureName = asset._dragonBonesJsonData.armature[0].name || 'default'; - // dragonDisplay.armatureName = armatureName; - // dragonDisplay.dragonAtlasAsset = atlasObj - // dragonDisplay.dragonAsset = asset; - // resolve(asset._dragonBonesJsonData.armature[0].aabb); - }); + function L(t, n) { + if (!A(t) && "$$type" in t && "scxml" === t.$$type) return t; + var r = V(t); + return _e({ + name: r.type, + data: r, + $$type: "scxml", + type: "external" + }, n); + } + + function D(t, n) { + return m(n).map(function (n) { + return void 0 === n || "string" == typeof n || k(n) ? { + target: n, + event: t + } : _e(_e({}, n), { + event: t }); }); - }); -} + } -cc._RF.pop(); - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0cy9PUDE1L3NjcmlwdC91dGlsLmpzIl0sIm5hbWVzIjpbImdldFBvc0J5QW5nbGUiLCJhbmdsZSIsImxlbiIsInJhZGlhbiIsIk1hdGgiLCJQSSIsIngiLCJzaW4iLCJ5IiwiY29zIiwiZ2V0QW5nbGVCeVBvcyIsInB4IiwicHkiLCJteCIsIm15IiwiYWJzIiwieiIsInNxcnQiLCJwb3ciLCJyYWRpbmEiLCJhY29zIiwiZmxvb3IiLCJleGNoYW5nZU5vZGVQb3MiLCJiYXNlTm9kZSIsInRhcmdldE5vZGUiLCJjb252ZXJ0VG9Ob2RlU3BhY2VBUiIsIl9wYXJlbnQiLCJjb252ZXJ0VG9Xb3JsZFNwYWNlQVIiLCJjYyIsInYyIiwiUmFuZG9tSW50IiwiYSIsImIiLCJtYXgiLCJtaW4iLCJyYW5kb20iLCJyYW5kb21Tb3J0QnlBcnIiLCJhcnIiLCJuZXdBcnIiLCJ0bXBBcnIiLCJjb25jYXQiLCJsZW5ndGgiLCJyYW5kb21JbmRleCIsInB1c2giLCJzcGxpY2UiLCJzZXRTcHJOb2RlTWF4TGVuIiwic3ByTm9kZSIsIm1heFciLCJtYXhIIiwic3giLCJ3aWR0aCIsInN5IiwiaGVpZ2h0IiwicyIsInNjYWxlIiwicm91bmQiLCJsb2NhbFBvc1RvbG9jYWxQb3MiLCJ3b3JsZFBvcyIsInBhcmVudCIsImxvY2FsUG9zIiwid29ybGRQb3NUb0xvY2FsUG9zIiwiZ2V0U2NhbGVSYXRlQnkyTm9kZSIsIm1heEZsYWciLCJ3b3JsZFJlY3QxIiwiZ2V0Qm91bmRpbmdCb3hUb1dvcmxkIiwid29ybGRSZWN0MiIsImdldERpc3RhbmNlIiwic3RhcnQiLCJlbmQiLCJwb3MiLCJkaXMiLCJwbGF5QXVkaW9CeVVybCIsImF1ZGlvX3VybCIsImNiIiwiQXVkaW9DbGlwIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiYXVkaW9JZCIsImF1ZGlvRW5naW5lIiwicGxheSIsInNldEZpbmlzaENhbGxiYWNrIiwiYXNzZXRNYW5hZ2VyIiwibG9hZFJlbW90ZSIsImVyciIsImF1ZGlvQ2xpcCIsImJ0bkNsaWNrQW5pbWEiLCJidG4iLCJ0aW1lIiwicmF0ZSIsInRtcFNjYWxlIiwib24iLCJOb2RlIiwiRXZlbnRUeXBlIiwiVE9VQ0hfU1RBUlQiLCJ0d2VlbiIsInRvIiwiVE9VQ0hfQ0FOQ0VMIiwiVE9VQ0hfRU5EIiwiZ2V0U3ByaXRlRnJpbWVCeVVybCIsInVybCIsImxvYWRlciIsImxvYWQiLCJpbWciLCJzcHJpdGVGcmFtZSIsIlNwcml0ZUZyYW1lIiwiZ2V0U3ByTm9kZSIsInJlc05hbWUiLCJzZiIsImZpbmQiLCJnZXRDb21wb25lbnQiLCJTcHJpdGUiLCJub2RlIiwiYWRkQ29tcG9uZW50IiwiZ2V0U3ByTm9kZUJ5VXJsIiwic3ByIiwicGxheUF1ZGlvIiwicGxheUVmZmVjdCIsImFzeW5jRGVsYXkiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsInNldFRpbWVvdXQiLCJlIiwiRmlyZXdvcmtTZXR0aW5ncyIsIm5vZGVMaXN0Iiwic2lkZSIsInJhbmdlIiwibnVtYmVyIiwic2NhbHNlUmFuZ2UiLCJjb3B5IiwiZmlyZXdvcmsiLCJzaG93RmlyZXdvcmtzIiwiZmlyZXdvcmtTZXR0aW5ncyIsIkFycmF5IiwiZmlsbCIsImZvckVhY2giLCJfIiwiaSIsInJhYmJvbk5vZGUiLCJpbnN0YW50aWF0ZSIsImFjdGl2ZSIsImFzeW5jVHdlZW5CeSIsImVhc2luZyIsImJ5IiwicmFiYm9uRmFsbCIsInVuaW9uIiwicmVwZWF0Rm9yZXZlciIsImRlbGF5Iiwib3BhY2l0eSIsImNhbGwiLCJzdG9wQWxsQWN0aW9ucyIsIm9mZnNldFgiLCJhc3luY1R3ZWVuVG8iLCJkdXJhdGlvbiIsIm9iaiIsImVhc2UiLCJ1bmRlZmluZWQiLCJzaG93VHJlYmxlRmlyZXdvcmsiLCJyYWJib25MaXN0IiwibWlkZGxlIiwibGVmdCIsInJpZ2h0Iiwib25Ib21ld29ya0ZpbmlzaCIsIm1pZGRsZUxheWVyIiwibWlkZGxlTGF5ZXJDb21wb25lbnQiLCJyb2xlIiwiY29uc29sZSIsImxvZyIsImxvYWREcmFnb25Cb25lcyIsImRyYWdvbkRpc3BsYXkiLCJ0ZXgiLCJhdGxhcyIsInNrZSIsInR5cGUiLCJlcnJvciIsInRleHR1cmUiLCJhdGxhc0pzb24iLCJkcmFnb25Cb25lc0pzb24iLCJhdGxhc09iaiIsImRyYWdvbkJvbmVzIiwiRHJhZ29uQm9uZXNBdGxhc0Fzc2V0IiwidXVpZCIsImFzc2V0IiwiRHJhZ29uQm9uZXNBc3NldCIsImFybWF0dXJlTmFtZSIsIl9kcmFnb25Cb25lc0pzb25EYXRhIiwiYXJtYXR1cmUiLCJkcmFnb25BdGxhc0Fzc2V0IiwiZHJhZ29uQXNzZXQiLCJhYWJiIiwibG9hZFNwaW5lIiwic2tlbGV0b24iLCJwaWNOYW1lIiwibG9hZEFueSIsInNwIiwiU2tlbGV0b25EYXRhIiwiX3V1aWQiLCJza2VsZXRvbkpzb24iLCJKU09OIiwic3RyaW5naWZ5IiwiYXRsYXNUZXh0IiwidGV4dHVyZXMiLCJ0ZXh0dXJlTmFtZXMiLCJza2VsZXRvbkRhdGEiLCJqc29uT2JqIiwiYW5pbWF0aW9uTmFtZU9iaiIsImFuaW1hdGlvbnMiLCJhbmltYXRpb25OYW1lcyIsImFuaW1hdGlvbiIsImxvb3AiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFPLFNBQVNBLGFBQVQsQ0FBdUJDLEtBQXZCLEVBQThCQyxHQUE5QixFQUFtQztBQUV4QyxNQUFNQyxNQUFNLEdBQUdGLEtBQUssR0FBR0csSUFBSSxDQUFDQyxFQUFiLEdBQWtCLEdBQWpDO0FBQ0EsTUFBTUMsQ0FBQyxHQUFHRixJQUFJLENBQUNHLEdBQUwsQ0FBU0osTUFBVCxJQUFtQkQsR0FBN0I7QUFDQSxNQUFNTSxDQUFDLEdBQUdKLElBQUksQ0FBQ0ssR0FBTCxDQUFTTixNQUFULElBQW1CRCxHQUE3QjtBQUVBLFNBQU87QUFBRUksSUFBQUEsQ0FBQyxFQUFEQSxDQUFGO0FBQUtFLElBQUFBLENBQUMsRUFBREE7QUFBTCxHQUFQO0FBRUQ7O0FBRU0sU0FBU0UsYUFBVCxD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VixPQUFELENBQXJCO0FBRUExQixVQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBWSxXQUFaLEVBQXlCeUIsT0FBekI7QUFFSEQsVUFBQUEsUUFBUSxDQUFDWSxZQUFULEdBQXdCckIsS0FBeEI7QUFHRyxjQUFNc0IsT0FBTyxHQUFHM0IsZUFBaEIsQ0FuQmdFLENBbUJoQzs7QUFDaEMsY0FBTTRCLGdCQUFnQixHQUFHRCxPQUFPLENBQUNFLFVBQWpDO0FBQ0EsY0FBSUMsY0FBYyxHQUFHLEVBQXJCOztBQUNBLGVBQUssSUFBSW5JLElBQVQsSUFBaUJpSSxnQkFBakIsRUFBbUM7QUFDakN2QyxZQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBWSxXQUFaLEVBQXlCM0YsSUFBekI7QUFDQW1JLFlBQUFBLGNBQWMsQ0FBQ3BLLElBQWYsQ0FBb0JpQyxJQUFwQjtBQUNEOztBQUNKMEYsVUFBQUEsT0FBTyxDQUFDQyxHQUFSLENBQVksc0JBQVosRUFBb0N3QixRQUFRLENBQUNpQixTQUE3QztBQUNHakIsVUFBQUEsUUFBUSxDQUFDZ0IsY0FBVCxHQUEwQkEsY0FBMUI7QUFDSGhCLFVBQUFBLFFBQVEsQ0FBQ2tCLElBQVQsR0FBZ0IsS0FBaEI7QUFFRzNDLFVBQUFBLE9BQU8sQ0FBQ0MsR0FBUixDQUFZLHdCQUFaLEVBQXNDcUMsT0FBTyxDQUFDLFVBQUQsQ0FBN0M7QUFFQXJGLFVBQUFBLE9BQU8sQ0FBQ3FGLE9BQU8sQ0FBQyxVQUFELENBQVIsQ0FBUCxDQWhDZ0UsQ0FtQ2hFO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNELFNBbEREO0FBbURILE9BekREO0FBMERELEtBaEVEO0FBaUVELEdBbkVNLENBQVA7QUFxRUQiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBnZXRQb3NCeUFuZ2xlKGFuZ2xlLCBsZW4pIHtcblxuICBjb25zdCByYWRpYW4gPSBhbmdsZSAqIE1hdGguUEkgLyAxODA7XG4gIGNvbnN0IHggPSBNYXRoLnNpbihyYWRpYW4pICogbGVuO1xuICBjb25zdCB5ID0gTWF0aC5jb3MocmFkaWFuKSAqIGxlbjtcblxuICByZXR1cm4geyB4LCB5IH07XG5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFuZ2xlQnlQb3MocHgsIHB5LCBteCwgbXkpIHtcblxuICBjb25zdCB4ID0gTWF0aC5hYnMocHggLSBteCk7XG4gIGNvbnN0IHkgPSBNYXRoLmFicyhweSAtIG15KTtcblxuICBjb25zdCB6ID0gTWF0aC5zcXJ0KE1hdGgucG93KHgsIDIpICsgTWF0aC5wb3coeSwgMikpO1xuICBjb25zdCBjb3MgPSB5IC8gejtcbiAgY29uc3QgcmFkaW5hID0gTWF0aC5hY29zKGNvcyk7IC8vIOeUqOWPjeS4ieinkuWHveaVsOaxguW8p+W6plxuICBsZXQgYW5nbGUgPSBNYXRoLmZsb29yKDE4MCAvIChNYXRoLlBJIC8gcmFkaW5hKSAqIDEwMCkgLyAxMDA7IC8vIOWwhuW8p+W6pui9rOaNouaIkOinkuW6plxuXG4gIGlmIChteCA+IHB4ICYmIG15ID4gcHkpIHsvLyDpvKDmoIflnKjnrKzlm5vosaHpmZBcbiAgICBhbmdsZSA9IDE4MCAtIGFuZ2xlO1xuICB9XG4gIGlmIChteCA9PT0gcHggJiYgbXkgPiBweSkgey8vIOm8oOagh+WcqHnovbTotJ/mlrnlkJHkuIpcbiAgICBhbmdsZSA9IDE4MDtcbiAgfVxuICBpZiAobXggPiBweCAmJiBteSA9PT0gcHkpIHsvLyDpvKDmoIflnKh46L205q2j5pa55ZCR5LiKXG4gICAgYW5nbGUgPSA5MDtcbiAgfVxuICBpZiAobXggPCBweCAmJiBteSA+IHB5KSB7Ly8g6byg5qCH5Zyo56ys5LiJ6LGh6ZmQXG4gICAgYW5nbGUgPSAxODAgKyBhbmdsZTtcbiAgfVxuICBpZiAobXggPCBweCAmJiBteSA9PT0gcHkpIHsvLyDpvKDmoIflnKh46L206LSf5pa55ZCRXG4gICAgYW5nbGUgPSAyNzA7XG4gIH1cbiAgaWYgKG14IDwgcHggJiYgbXkgPCBweSkgey8vIOm8oOagh+WcqOesrOS6jOixoemZkFxuICAgIGFuZ2xlID0gMzYwIC0gYW5nbGU7XG4gIH1cblxuICAvLyBjb25zb2xlLmxvZygnYW5nbGU6ICcsIGFuZ2xlKTtcbiAgcmV0dXJuIGFuZ2xlO1xuXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleGNoYW5nZU5vZGVQb3MoYmFzZU5vZGUsIHRhcmdldE5vZGUpIHtcbiAgcmV0dXJuIGJhc2VOb2RlLmNvbnZlcnRUb05vZGVTcGFjZUFSKHRhcmdldE5vZGUuX3BhcmVudC5jb252ZXJ0VG9Xb3JsZFNwYWNlQVIoY2MudjIodGFyZ2V0Tm9kZS54LCB0YXJnZXROb2RlLnkpKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBSYW5kb21JbnQoYSwgYiA9IDApIHtcbiAgbGV0IG1heCA9IE1hdGgubWF4KGEsIGIpO1xuICBsZXQgbWluID0gTWF0aC5taW4oYSwgYik7XG4gIHJldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAobWF4IC0gbWluKSArIG1pbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByYW5kb21Tb3J0QnlBcnIoYXJyKSB7XG4gIGNvbnN0IG5ld0FyciA9IFtdO1xuICBjb25zdCB0bXBBcnIgPSBhcnIuY29uY2F0KCk7XG4gIHdoaWxlICh0bXBBcnIubGVuZ3RoID4gMCkge1xuICAgIGNvbnN0IHJhbmRvbUluZGV4ID0gTWF0aC5mbG9vcih0bXBBcnIubGVuZ3RoICogTWF0aC5yYW5kb20oKSk7XG4gICAgbmV3QXJyLnB1c2godG1wQXJyW3JhbmRvbUluZGV4XSk7XG4gICAgdG1wQXJyLnNwbGljZShyYW5kb21JbmRleCwgMSk7XG4gIH1cbiAgcmV0dXJuIG5ld0Fycjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldFNwck5vZGVNYXhMZW4oc3ByTm9kZSwgbWF4VywgbWF4SCkge1xuICBjb25zdCBzeCA9IG1heFcgLyBzcHJOb2RlLndpZHRoO1xuICBjb25zdCBzeSA9IG1heEggLyBzcHJOb2RlLmhlaWdodDtcbiAgY29uc3QgcyA9IE1hdGgubWluKHN4LCBzeSk7XG4gIHNwck5vZGUuc2NhbGUgPSBNYXRoLnJvdW5kKHMgKiAxMDAwKSAvIDEwMDA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2NhbFBvc1RvbG9jYWxQb3MoYmFzZU5vZGUsIHRhcmdldE5vZGUpIHtcblx0Y29uc3Qgd29ybGRQb3MgPSB0YXJnZXROb2RlLnBhcmVudC5jb252ZXJ0VG9Xb3JsZFNwYWNlQVIoY2MudjIodGFyZ2V0Tm9kZS54LCB0YXJnZXROb2RlLnkpKTtcblx0Y29uc3QgbG9jYWxQb3MgPSBiYXNlTm9kZS5wYXJlbnQuY29udmVydFRvTm9kZVNwYWNlQVIoY2MudjIod29ybGRQb3MueCwgd29ybGRQb3MueSkpO1xuXHRyZXR1cm4gbG9jYWxQb3M7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3b3JsZFBvc1RvTG9jYWxQb3Mod29ybGRQb3MsIGJhc2VOb2RlKSB7XG5cdGNvbnN0IGxvY2FsUG9zID0gYmFzZU5vZGUucGFyZW50LmNvbnZlcnRUb05vZGVTcGFjZUFSKGNjLnYyKHdvcmxkUG9zLngsIHdvcmxkUG9zLnkpKTtcblx0cmV0dXJuIGxvY2FsUG9zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2NhbGVSYXRlQnkyTm9kZShiYXNlTm9kZSwgdGFyZ2V0Tm9kZSwgbWF4RmxhZyA9IHRydWUpIHtcblx0Y29uc3Qgd29ybGRSZWN0MSA9IHRhcmdldE5vZGUuZ2V0Qm91bmRpbmdCb3hUb1dvcmxkKCk7XG5cdGNvbnN0IHdvcmxkUmVjdDIgPSBiYXNlTm9kZS5nZXRCb3VuZGluZ0JveFRvV29ybGQoKTtcblxuXHRjb25zdCBzeCA9IHdvcmxkUmVjdDEud2lkdGggLyB3b3JsZFJlY3QyLndpZHRoO1xuXHRjb25zdCBzeSA9IHdvcmxkUmVjdDEuaGVpZ2h0IC8gd29ybGRSZWN0Mi5oZWlnaHQ7XG5cdGlmIChtYXhGbGFnKSB7XG5cdFx0cmV0dXJuIE1hdGgubWF4KHN4LCBzeSk7XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIE1hdGgubWluKHN4LCBzeSk7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERpc3RhbmNlIChzdGFydCwgZW5kKXtcbiAgICB2YXIgcG9zID0gY2MudjIoc3RhcnQueCAtIGVuZC54LCBzdGFydC55IC0gZW5kLnkpO1xuICAgIHZhciBkaXMgPSBNYXRoLnNxcnQocG9zLngqcG9zLnggKyBwb3MueSpwb3MueSk7XG4gICAgcmV0dXJuIGRpcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBsYXlBdWRpb0J5VXJsKGF1ZGlvX3VybCwgY2I9bnVsbCkge1xuXHRpZiAoYXVkaW9fdXJsKSB7XG4gICAgaWYgKChhdWRpb191cmwgaW5zdGFuY2VvZiBjYy5BdWRpb0NsaXApICYmYXVkaW9fdXJsLmNvbnN0cnVjdG9yLm5hbWUgPT0gJ2NjX0F1ZGlvQ2xpcCcpIHtcbiAgICAgIGNvbnN0IGF1ZGlvSWQgPSBjYy5hdWRpb0VuZ2luZS5wbGF5KGF1ZGlvX3VybCwgZmFsc2UsIDAuOCk7XG4gICAgICBpZiAoY2IpIHtcbiAgICAgICAgY2MuYXVkaW9FbmdpbmUuc2V0RmluaXNoQ2FsbGJhY2soYXVkaW9JZCwgKCkgPT4ge1xuICAgICAgICAgIGNiKCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjYy5hc3NldE1hbmFnZXIubG9hZFJlbW90ZShhdWRpb191cmwsIChlcnIsIGF1ZGlvQ2xpcCkgPT4ge1xuICAgICAgICBjb25zdCBhdWRpb0lkID0gY2MuYXVkaW9FbmdpbmUucGxheShhdWRpb0NsaXAsIGZhbHNlLCAwLjgpO1xuICAgICAgICBpZiAoY2IpIHtcbiAgICAgICAgICBjYy5hdWRpb0VuZ2luZS5zZXRGaW5pc2hDYWxsYmFjayhhdWRpb0lkLCAoKSA9PiB7XG4gICAgICAgICAgICBjYigpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTsgICAgfVxuXHRcdFxuXHR9XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGJ0bkNsaWNrQW5pbWEoYnRuLCB0aW1lPTAuMTUsIHJhdGU9MS4wNSkge1xuICBidG4udG1wU2NhbGUgPSBidG4uc2NhbGU7XG4gIGJ0bi5vbihjYy5Ob2RlLkV2ZW50VHlwZS5UT1VDSF9TVEFSVCwgKCkgPT4ge1xuICAgIGNjLnR3ZWVuKGJ0bilcbiAgICAgIC50byh0aW1lIC8gMiwge3NjYWxlOiBidG4uc2NhbGUgKiByYXRlfSlcbiAgICAgIC5zdGFydCgpXG4gIH0pXG4gIGJ0bi5vbihjYy5Ob2RlLkV2ZW50VHlwZS5UT1VDSF9DQU5DRUwsICgpID0+IHtcbiAgICBjYy50d2VlbihidG4pXG4gICAgICAudG8odGltZSAvIDIsIHtzY2FsZTogYnRuLnRtcFNjYWxlfSlcbiAgICAgIC5zdGFydCgpXG4gIH0pXG4gIGJ0bi5vbihjYy5Ob2RlLkV2ZW50VHlwZS5UT1VDSF9FTkQsICgpID0+IHtcbiAgICBjYy50d2VlbihidG4pXG4gICAgICAudG8odGltZSAvIDIsIHtzY2FsZTogYnRuLnRtcFNjYWxlfSlcbiAgICAgIC5zdGFydCgpXG4gIH0pXG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNwcml0ZUZyaW1lQnlVcmwodXJsLCBjYikge1xuICBjYy5sb2FkZXIubG9hZCh7IHVybCB9LCAoZXJyLCBpbWcpID0+IHtcbiAgICBjb25zdCBzcHJpdGVGcmFtZSA9IG5ldyBjYy5TcHJpdGVGcmFtZShpbWcpXG4gICAgaWYgKGNiKSB7XG4gICAgICBjYihzcHJpdGVGcmFtZSk7XG4gICAgfVxuICB9KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3ByTm9kZShyZXNOYW1lKSB7XG4gIGNvbnN0IHNmID0gY2MuZmluZCgnQ2FudmFzL3Jlcy9pbWcvJyArIHJlc05hbWUpLmdldENvbXBvbmVudChjYy5TcHJpdGUpLnNwcml0ZUZyYW1lO1xuICBjb25zdCBub2RlID0gbmV3IGNjLk5vZGUoKTtcbiAgbm9kZS5hZGRDb21wb25lbnQoY2MuU3ByaXRlKS5zcHJpdGVGcmFtZSA9IHNmO1xuICByZXR1cm4gbm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNwck5vZGVCeVVybCh1cmwsIGNiKSB7XG4gIGNvbnN0IG5vZGUgPSBuZXcgY2MuTm9kZSgpO1xuICBjb25zdCBzcHIgPSBub2RlLmFkZENvbXBvbmVudChjYy5TcHJpdGUpO1xuICBnZXRTcHJpdGVGcmltZUJ5VXJsKHVybCwgKHNmKSA9PiB7XG4gICAgc3ByLnNwcml0ZUZyYW1lID0gc2Y7XG4gICAgaWYgKGNiKSB7XG4gICAgICBjYihzcHIpO1xuICAgIH1cbiAgfSlcbn1cblxuXG5cbmV4cG9ydCBmdW5jdGlvbiBwbGF5QXVkaW8oYXVkaW9DbGlwLCBjYiA9IG51bGwpIHtcbiAgaWYgKGF1ZGlvQ2xpcCkge1xuICAgIGNvbnN0IGF1ZGlvSWQgPSBjYy5hdWRpb0VuZ2luZS5wbGF5RWZmZWN0KGF1ZGlvQ2xpcCwgZmFsc2UsIDAuOCk7XG4gICAgaWYgKGNiKSB7XG4gICAgICBjYy5hdWRpb0VuZ2luZS5zZXRGaW5pc2hDYWxsYmFjayhhdWRpb0lkLCAoKSA9PiB7XG4gICAgICAgIGNiKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFzeW5jRGVsYXkodGltZSkge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfSwgdGltZSAqIDEwMDApO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJlamVjdChlKTtcbiAgICB9XG4gIH0pXG59XG5cbmV4cG9ydCBjbGFzcyBGaXJld29ya1NldHRpbmdzIHtcbiAgYmFzZU5vZGU7IC8vIOeItuiKgueCuVxuICBub2RlTGlzdDsgLy8g54Gr6Iqx6IqC54K555qEYXJyYXlcbiAgcG9zOyAvLyDlj5HlsITngrlcbiAgc2lkZTsgLy8g5Y+R5bCE5pa55ZCRXG4gIHJhbmdlOyAvLyDmianmlaPojIPlm7RcbiAgbnVtYmVyOyAvLyDlj5HlsITmlbDph49cbiAgc2NhbHNlUmFuZ2U7IC8vIOe8qeaUvuiMg+WbtFxuICBjb25zdHJ1Y3RvcihiYXNlTm9kZSwgbm9kZUxpc3QsXG4gICAgcG9zID0gY2MudjIoMCwgMCksXG4gICAgc2lkZSA9IGNjLnYyKDAsIDEwMCksXG4gICAgcmFuZ2UgPSA1MCxcbiAgICBudW1iZXIgPSAxMDAsXG4gICAgc2NhbHNlUmFuZ2UgPSAwXG4gICkge1xuICAgIHRoaXMuYmFzZU5vZGUgPSBiYXNlTm9kZTtcbiAgICB0aGlzLm5vZGVMaXN0ID0gbm9kZUxpc3Q7XG4gICAgdGhpcy5wb3MgPSBwb3M7XG4gICAgdGhpcy5zaWRlID0gc2lkZTtcbiAgICB0aGlzLnJhbmdlID0gcmFuZ2U7XG4gICAgdGhpcy5udW1iZXIgPSBudW1iZXI7XG4gICAgdGhpcy5zY2Fsc2VSYW5nZSA9IHNjYWxzZVJhbmdlO1xuICB9XG5cbiAgc3RhdGljIGNvcHkoZmlyZXdvcmspIHtcbiAgICByZXR1cm4gbmV3IEZpcmV3b3JrU2V0dGluZ3MoXG4gICAgICBmaXJld29yay5iYXNlTm9kZSxcbiAgICAgIGZpcmV3b3JrLm5vZGVMaXN0LFxuICAgICAgZmlyZXdvcmsucG9zLFxuICAgICAgZmlyZXdvcmsuc2lkZSxcbiAgICAgIGZpcmV3b3JrLnJhbmdlLFxuICAgICAgZmlyZXdvcmsubnVtYmVyLFxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNob3dGaXJld29ya3MoZmlyZXdvcmtTZXR0aW5ncykge1xuICBjb25zdCB7IGJhc2VOb2RlLCBub2RlTGlzdCwgcG9zLCBzaWRlLCByYW5nZSwgbnVtYmVyLCBzY2Fsc2VSYW5nZSB9ID0gZmlyZXdvcmtTZXR0aW5ncztcbiAgbmV3IEFycmF5KG51bWJlcikuZmlsbCgnICcpLmZvckVhY2goYXN5bmMgKF8sIGkpID0+IHtcblxuICAgIGxldCByYWJib25Ob2RlID0gbmV3IGNjLk5vZGUoKTtcbiAgICByYWJib25Ob2RlLnBhcmVudCA9IGJhc2VOb2RlO1xuICAgIHJhYmJvbk5vZGUueCA9IHBvcy54O1xuICAgIHJhYmJvbk5vZGUueSA9IHBvcy55O1xuICAgIHJhYmJvbk5vZGUuYW5nbGUgPSA2MCAqIE1hdGgucmFuZG9tKCkgLSAzMDtcblxuICAgIGxldCBub2RlID0gY2MuaW5zdGFudGlhdGUobm9kZUxpc3RbUmFuZG9tSW50KG5vZGVMaXN0Lmxlbmd0aCldKTtcbiAgICBub2RlLnBhcmVudCA9IHJhYmJvbk5vZGU7XG4gICAgbm9kZS5hY3RpdmUgPSB0cnVlO1xuICAgIG5vZGUueCA9IDA7XG4gICAgbm9kZS55ID0gMDtcbiAgICBub2RlLmFuZ2xlID0gMDtcbiAgICBub2RlLnNjYWxlID0gKE1hdGgucmFuZG9tKCkgLSAwLjUpICogc2NhbHNlUmFuZ2UgKyAxO1xuXG4gICAgY29uc3QgcmF0ZSA9IE1hdGgucmFuZG9tKCk7XG4gICAgY29uc3QgYW5nbGUgPSBNYXRoLlBJICogKE1hdGgucmFuZG9tKCkgKiAyIC0gMSk7XG5cbiAgICBhd2FpdCBhc3luY1R3ZWVuQnkocmFiYm9uTm9kZSwgMC4zLCB7XG4gICAgICB4OiBzaWRlLnggKiByYXRlICsgTWF0aC5jb3MoYW5nbGUpICogcmFuZ2UgKiByYXRlLFxuICAgICAgeTogc2lkZS55ICogcmF0ZSArIE1hdGguc2luKGFuZ2xlKSAqIHJhbmdlICogcmF0ZVxuICAgIH0sIHtcbiAgICAgIGVhc2luZzogJ3F1YWRJbidcbiAgICB9KTtcblxuICAgIGNjLnR3ZWVuKHJhYmJvbk5vZGUpXG4gICAgICAuYnkoOCwgeyB5OiAtMjAwMCB9KVxuICAgICAgLnN0YXJ0KCk7XG5cbiAgICBjYy50d2VlbihyYWJib25Ob2RlKVxuICAgICAgLnRvKDUsIHsgc2NhbGU6IChNYXRoLnJhbmRvbSgpIC0gMC41KSAqIHNjYWxzZVJhbmdlICsgMSB9KVxuICAgICAgLnN0YXJ0KCk7XG5cbiAgICByYWJib25GYWxsKHJhYmJvbk5vZGUpO1xuXG4gICAgYXdhaXQgYXN5bmNEZWxheShNYXRoLnJhbmRvbSgpKTtcbiAgICBjYy50d2Vlbihub2RlKVxuICAgICAgLmJ5KDAuMTUsIHsgeDogLTEwLCBhbmdsZTogLTEwIH0pXG4gICAgICAuYnkoMC4zLCB7IHg6IDIwLCBhbmdsZTogMjAgfSlcbiAgICAgIC5ieSgwLjE1LCB7IHg6IC0xMCwgYW5nbGU6IC0xMCB9KVxuICAgICAgLnVuaW9uKClcbiAgICAgIC5yZXBlYXRGb3JldmVyKClcbiAgICAgIC5zdGFydCgpO1xuXG4gICAgY2MudHdlZW4ocmFiYm9uTm9kZSlcbiAgICAgIC5kZWxheSg1KVxuICAgICAgLnRvKDAuMywgeyBvcGFjaXR5OiAwIH0pXG4gICAgICAuY2FsbCgoKSA9PiB7XG4gICAgICAgIG5vZGUuc3RvcEFsbEFjdGlvbnMoKTtcbiAgICAgICAgbm9kZS5hY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgbm9kZS5wYXJlbnQgPSBudWxsO1xuICAgICAgICBub2RlID0gbnVsbDtcbiAgICAgIH0pXG4gICAgICAuc3RhcnQoKTtcbiAgfSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJhYmJvbkZhbGwobm9kZSkge1xuICBjb25zdCB0aW1lID0gMSArIE1hdGgucmFuZG9tKCk7XG4gIGNvbnN0IG9mZnNldFggPSBSYW5kb21JbnQoLTIwMCwgMjAwKSAqIHRpbWU7XG4gIGF3YWl0IGFzeW5jVHdlZW5CeShub2RlLCB0aW1lLCB7IHg6IG9mZnNldFgsIGFuZ2xlOiBvZmZzZXRYICogNjAgLyAyMDAgfSk7XG4gIHJhYmJvbkZhbGwobm9kZSk7XG59XG5cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFzeW5jVHdlZW5Ubyhub2RlLCBkdXJhdGlvbiwgb2JqLCBlYXNlID0gdW5kZWZpbmVkKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNjLnR3ZWVuKG5vZGUpXG4gICAgICAgIC50byhkdXJhdGlvbiwgb2JqLCBlYXNlKVxuICAgICAgICAuY2FsbCgoKSA9PiB7XG4gICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICB9KVxuICAgICAgICAuc3RhcnQoKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZWplY3QoZSk7XG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFzeW5jVHdlZW5CeShub2RlLCBkdXJhdGlvbiwgb2JqLCBlYXNlID0gdW5kZWZpbmVkKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNjLnR3ZWVuKG5vZGUpXG4gICAgICAgIC5ieShkdXJhdGlvbiwgb2JqLCBlYXNlKVxuICAgICAgICAuY2FsbCgoKSA9PiB7XG4gICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICB9KVxuICAgICAgICAuc3RhcnQoKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZWplY3QoZSk7XG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNob3dUcmVibGVGaXJld29yayhiYXNlTm9kZSwgcmFiYm9uTGlzdCkge1xuICBjb25zdCBtaWRkbGUgPSBuZXcgRmlyZXdvcmtTZXR0aW5ncyhiYXNlTm9kZSwgcmFiYm9uTGlzdCk7XG4gIG1pZGRsZS5wb3MgPSBjYy52MigwLCAtNDAwKTtcbiAgbWlkZGxlLnNpZGUgPSBjYy52MigwLCAxMDAwKTtcbiAgbWlkZGxlLnJhbmdlID0gMjAwO1xuICBtaWRkbGUubnVtYmVyID0gMTAwO1xuICBtaWRkbGUuc2NhbHNlUmFuZ2UgPSAwLjQ7XG5cbiAgY29uc3QgbGVmdCA9IEZpcmV3b3JrU2V0dGluZ3MuY29weShtaWRkbGUpO1xuICBsZWZ0LnBvcyA9IGNjLnYyKC02MDAsIC00MDApO1xuICBsZWZ0LnNpZGUgPSBjYy52MigyMDAsIDEwMDApO1xuXG4gIGNvbnN0IHJpZ2h0ID0gRmlyZXdvcmtTZXR0aW5ncy5jb3B5KG1pZGRsZSk7XG4gIHJpZ2h0LnBvcyA9IGNjLnYyKDYwMCwgLTQwMCk7XG4gIHJpZ2h0LnNpZGUgPSBjYy52MigtMjAwLCAxMDAwKTtcblxuICBzaG93RmlyZXdvcmtzKG1pZGRsZSk7XG4gIHNob3dGaXJld29ya3MobGVmdCk7XG4gIHNob3dGaXJld29ya3MocmlnaHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gb25Ib21ld29ya0ZpbmlzaCgpIHtcbiAgY29uc3QgbWlkZGxlTGF5ZXIgPSBjYy5maW5kKCdtaWRkbGVMYXllcicpO1xuICBpZiAobWlkZGxlTGF5ZXIpIHtcbiAgICBjb25zdCBtaWRkbGVMYXllckNvbXBvbmVudCA9IG1pZGRsZUxheWVyLmdldENvbXBvbmVudCgnbWlkZGxlTGF5ZXInKTtcbiAgICBpZiAobWlkZGxlTGF5ZXJDb21wb25lbnQucm9sZSA9PSAnc3R1ZGVudCcpIHtcbiAgICAgIG1pZGRsZUxheWVyQ29tcG9uZW50Lm9uSG9tZXdvcmtGaW5pc2goKCkgPT4geyB9KTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgY29uc29sZS5sb2coJ29uSG9tZXdvcmtGaW5pc2gnKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9hZERyYWdvbkJvbmVzKGRyYWdvbkRpc3BsYXkse3RleCwgYXRsYXMsIHNrZX0pIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjYy5sb2FkZXIubG9hZCh7IHVybDogdGV4LCB0eXBlOiAncG5nJyB9LCAoZXJyb3IsIHRleHR1cmUpID0+IHtcbiAgICAgIGlmIChlcnJvcikge1xuICAgICAgICByZWplY3QoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY2MubG9hZGVyLmxvYWQoeyB1cmw6IGF0bGFzLCB0eXBlOiAndHh0JyB9LCAoZXJyb3IsIGF0bGFzSnNvbikgPT4ge1xuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICByZWplY3QoKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgICBjYy5sb2FkZXIubG9hZCh7IHVybDogc2tlLCB0eXBlOiAndHh0JyB9LCAoZXJyb3IsIGRyYWdvbkJvbmVzSnNvbikgPT4ge1xuICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgIHJlamVjdCgpO1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBhdGxhc09iaiA9IG5ldyBkcmFnb25Cb25lcy5EcmFnb25Cb25lc0F0bGFzQXNzZXQoKVxuICAgICAgICAgICAgYXRsYXNPYmoudXVpZCA9IGF0bGFzXG4gICAgICAgICAgICBhdGxhc09iai5hdGxhc0pzb24gPSBhdGxhc0pzb25cbiAgICAgICAgICAgIGF0bGFzT2JqLnRleHR1cmUgPSB0ZXh0dXJlXG4gIFxuICAgICAgICAgICAgY29uc3QgYXNzZXQgPSBuZXcgZHJhZ29uQm9uZXMuRHJhZ29uQm9uZXNBc3NldCgpXG4gICAgICAgICAgICBhc3NldC51dWlkID0gc2tlXG4gICAgICAgICAgICBhc3NldC5kcmFnb25Cb25lc0pzb24gPSBkcmFnb25Cb25lc0pzb247XG5cbiAgICAgICAgICAgIGNvbnN0IGFybWF0dXJlTmFtZSA9IGFzc2V0Ll9kcmFnb25Cb25lc0pzb25EYXRhLmFybWF0dXJlWzBdLm5hbWUgfHwgJ2RlZmF1bHQnO1xuICAgICAgICAgICAgZHJhZ29uRGlzcGxheS5hcm1hdHVyZU5hbWUgPSBhcm1hdHVyZU5hbWU7XG4gIFxuICAgICAgICAgICAgZHJhZ29uRGlzcGxheS5kcmFnb25BdGxhc0Fzc2V0ID0gYXRsYXNPYmpcbiAgICAgICAgICAgIGRyYWdvbkRpc3BsYXkuZHJhZ29uQXNzZXQgPSBhc3NldDtcbiAgICAgICAgICAgIHJlc29sdmUoYXNzZXQuX2RyYWdvbkJvbmVzSnNvbkRhdGEuYXJtYXR1cmVbMF0uYWFiYik7XG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG4gIFxufVxuXG5cblxuXG5leHBvcnQgZnVuY3Rpb24gbG9hZFNwaW5lKHNrZWxldG9uLCBwaWNOYW1lLCB7dGV4LCBhdGxhcywgc2tlfSkge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIC8vIGNjLmxvYWRlci5sb2FkKHsgdXJsOiB0ZXgsIHR5cGU6ICdwbmcnIH0sIChlcnJvciwgdGV4dHVyZSkgPT4ge1xuICAgIGNjLmFzc2V0TWFuYWdlci5sb2FkUmVtb3RlKHRleCwgKGVycm9yLCB0ZXh0dXJlKSA9PiB7XG4gICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgcmVqZWN0KCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIC8vIGNjLmxvYWRlci5sb2FkKHsgdXJsOiBhdGxhcywgdHlwZTogJ3R4dCcgfSwgKGVycm9yLCBhdGxhc0pzb24pID0+IHtcbiAgICAgIGNjLmFzc2V0TWFuYWdlci5sb2FkQW55KHsgdXJsOiBhdGxhcyB9LCAoZXJyb3IsIGF0bGFzSnNvbikgPT4ge1xuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICByZWplY3QoKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgICAvLyBjYy5sb2FkZXIubG9hZCh7IHVybDogc2tlLCB0eXBlOiAndHh0JyB9LCAoZXJyb3IsIGRyYWdvbkJvbmVzSnNvbikgPT4ge1xuICAgICAgICAgIGNjLmFzc2V0TWFuYWdlci5sb2FkQW55KHsgdXJsOiBza2UgfSwgKGVycm9yLCBkcmFnb25Cb25lc0pzb24pID0+IHtcbiAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICByZWplY3QoKTtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgIHZhciBhc3NldCA9IG5ldyBzcC5Ta2VsZXRvbkRhdGEoKTtcbiAgICAgICAgICAgIGFzc2V0Ll91dWlkID0gc2tlO1xuICAgICAgICAgICAgYXNzZXQuc2tlbGV0b25Kc29uID0gSlNPTi5zdHJpbmdpZnkoIGRyYWdvbkJvbmVzSnNvbiApO1xuICAgICAgICAgICAgYXNzZXQuYXRsYXNUZXh0ID0gYXRsYXNKc29uO1xuICAgICAgICAgICAgYXNzZXQudGV4dHVyZXMgPSBbdGV4dHVyZV07XG4gICAgICAgICAgICBhc3NldC50ZXh0dXJlTmFtZXMgPSBbcGljTmFtZV07XG5cbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdwaWNOYW1lOiAnLCBwaWNOYW1lKTtcblxuXHRcdFx0ICAgICAgc2tlbGV0b24uc2tlbGV0b25EYXRhID0gYXNzZXQ7XG5cdFxuXG4gICAgICAgICAgICBjb25zdCBqc29uT2JqID0gZHJhZ29uQm9uZXNKc29uIC8vSlNPTi5wYXJzZSggYXNzZXRzWzFdKTtcbiAgICAgICAgICAgIGNvbnN0IGFuaW1hdGlvbk5hbWVPYmogPSBqc29uT2JqLmFuaW1hdGlvbnM7XG4gICAgICAgICAgICBsZXQgYW5pbWF0aW9uTmFtZXMgPSBbXTtcbiAgICAgICAgICAgIGZvciAobGV0IG5hbWUgaW4gYW5pbWF0aW9uTmFtZU9iaikge1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZygnbmFtZX5+OiAgJywgbmFtZSk7XG4gICAgICAgICAgICAgIGFuaW1hdGlvbk5hbWVzLnB1c2gobmFtZSk7XG4gICAgICAgICAgICB9XG5cdFx0XHQgICAgICBjb25zb2xlLmxvZyhcInNrZWxldG9uLmFuaW1hdGlvbjogXCIsIHNrZWxldG9uLmFuaW1hdGlvbik7XG4gICAgICAgICAgICBza2VsZXRvbi5hbmltYXRpb25OYW1lcyA9IGFuaW1hdGlvbk5hbWVzO1xuXHRcdFx0ICAgICAgc2tlbGV0b24ubG9vcCA9IGZhbHNlO1xuXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImpzb25PYmpbJ3NrZWxldG9uJ10gOiBcIiwganNvbk9ialsnc2tlbGV0b24nXSlcblxuICAgICAgICAgICAgcmVzb2x2ZShqc29uT2JqWydza2VsZXRvbiddKTtcblxuXG4gICAgICAgICAgICAvLyBjb25zdCBhdGxhc09iaiA9IG5ldyBkcmFnb25Cb25lcy5EcmFnb25Cb25lc0F0bGFzQXNzZXQoKVxuICAgICAgICAgICAgLy8gYXRsYXNPYmoudXVpZCA9IGF0bGFzXG4gICAgICAgICAgICAvLyBhdGxhc09iai5hdGxhc0pzb24gPSBhdGxhc0pzb25cbiAgICAgICAgICAgIC8vIGF0bGFzT2JqLnRleHR1cmUgPSB0ZXh0dXJlXG4gIFxuICAgICAgICAgICAgLy8gY29uc3QgYXNzZXQgPSBuZXcgZHJhZ29uQm9uZXMuRHJhZ29uQm9uZXNBc3NldCgpXG4gICAgICAgICAgICAvLyBhc3NldC51dWlkID0gc2tlXG4gICAgICAgICAgICAvLyBhc3NldC5kcmFnb25Cb25lc0pzb24gPSBkcmFnb25Cb25lc0pzb247XG5cbiAgICAgICAgICAgIC8vIGNvbnN0IGFybWF0dXJlTmFtZSA9IGFzc2V0Ll9kcmFnb25Cb25lc0pzb25EYXRhLmFybWF0dXJlWzBdLm5hbWUgfHwgJ2RlZmF1bHQnO1xuICAgICAgICAgICAgLy8gZHJhZ29uRGlzcGxheS5hcm1hdHVyZU5hbWUgPSBhcm1hdHVyZU5hbWU7XG4gIFxuICAgICAgICAgICAgLy8gZHJhZ29uRGlzcGxheS5kcmFnb25BdGxhc0Fzc2V0ID0gYXRsYXNPYmpcbiAgICAgICAgICAgIC8vIGRyYWdvbkRpc3BsYXkuZHJhZ29uQXNzZXQgPSBhc3NldDtcbiAgICAgICAgICAgIC8vIHJlc29sdmUoYXNzZXQuX2RyYWdvbkJvbmVzSnNvbkRhdGEuYXJtYXR1cmVbMF0uYWFiYik7XG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG4gIFxufVxuIl19 -//------QC-SOURCE-SPLIT------ + function R(t, e, n, r, i) { + var o = t.options.guards, + a = { + state: i, + cond: e, + _event: r + }; + if ("xstate.guard" === e.type) return ((null == o ? void 0 : o[e.name]) || e.predicate)(n, r.data, a); + var s = o[e.type]; + if (!s) throw new Error("Guard '".concat(e.type, "' is not implemented on machine '").concat(t.id, "'.")); + return s(n, r.data, a); + } - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/OP15/script/state.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, '6acefvFAO9O7qvqEFnz5PJj', 'state'); -// OP15/script/state.js + function M(t) { + return "string" == typeof t ? { + type: t + } : t; + } -"use strict"; + function z(t, e, n) { + if ("object" == typeof t) return t; -exports.__esModule = true; -exports.assign = o; -exports.createMachine = s; -exports.interpret = v; -exports.InterpreterStatus = void 0; + var r = function r() {}; -/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. + return { + next: t, + error: e || r, + complete: n || r + }; + } -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted. + (I = t.ActionTypes || (t.ActionTypes = {})).Start = "xstate.start", I.Stop = "xstate.stop", I.Raise = "xstate.raise", I.Send = "xstate.send", I.Cancel = "xstate.cancel", I.NullEvent = "", I.Assign = "xstate.assign", I.After = "xstate.after", I.DoneState = "done.state", I.DoneInvoke = "done.invoke", I.Log = "xstate.log", I.Init = "xstate.init", I.Invoke = "xstate.invoke", I.ErrorExecution = "error.execution", I.ErrorCommunication = "error.communication", I.ErrorPlatform = "error.platform", I.ErrorCustom = "xstate.error", I.Update = "xstate.update", I.Pure = "xstate.pure", I.Choose = "xstate.choose", (j = t.SpecialTargets || (t.SpecialTargets = {})).Parent = "#_parent", j.Internal = "#_internal"; -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. -***************************************************************************** */ -function t(t, n) { - var e = "function" == typeof Symbol && t[Symbol.iterator]; - if (!e) return t; - var r, - o, - i = e.call(t), - a = []; + var F = function F(t) { + return "atomic" === t.type || "final" === t.type; + }; - try { - for (; (void 0 === n || n-- > 0) && !(r = i.next()).done;) { - a.push(r.value); - } - } catch (t) { - o = { - error: t - }; - } finally { - try { - r && !r.done && (e = i["return"]) && e.call(i); - } finally { - if (o) throw o.error; - } + function U(t) { + return s(t.states).map(function (e) { + return t.states[e]; + }); } - return a; -} + function B(t) { + var e = [t]; + return F(t) ? e : e.concat(g(U(t).map(B))); + } -var n; -exports.InterpreterStatus = n; -!function (t) { - t[t.NotStarted = 0] = "NotStarted", t[t.Running = 1] = "Running", t[t.Stopped = 2] = "Stopped"; -}(n || (exports.InterpreterStatus = n = {})); -var e = { - type: "xstate.init" -}; + function J(t, e) { + var n, + i, + o, + a, + s, + c, + u, + h, + f = q(new Set(t)), + l = new Set(e); -function r(t) { - return void 0 === t ? [] : [].concat(t); -} + try { + for (var d = r(l), p = d.next(); !p.done; p = d.next()) { + for (var v = (E = p.value).parent; v && !l.has(v);) { + l.add(v), v = v.parent; + } + } + } catch (t) { + n = { + error: t + }; + } finally { + try { + p && !p.done && (i = d["return"]) && i.call(d); + } finally { + if (n) throw n.error; + } + } -function o(t) { - return { - type: "xstate.assign", - assignment: t - }; -} + var y = q(l); -function i(t, n) { - return "string" == typeof (t = "string" == typeof t && n && n[t] ? n[t] : t) ? { - type: t - } : "function" == typeof t ? { - type: t.name, - exec: t - } : t; -} + try { + for (var g = r(l), m = g.next(); !m.done; m = g.next()) { + if ("compound" !== (E = m.value).type || y.get(E) && y.get(E).length) { + if ("parallel" === E.type) try { + for (var S = (s = void 0, r(U(E))), x = S.next(); !x.done; x = S.next()) { + var w = x.value; + "history" !== w.type && (l.has(w) || (l.add(w), f.get(w) ? f.get(w).forEach(function (t) { + return l.add(t); + }) : w.initialStateNodes.forEach(function (t) { + return l.add(t); + }))); + } + } catch (t) { + s = { + error: t + }; + } finally { + try { + x && !x.done && (c = S["return"]) && c.call(S); + } finally { + if (s) throw s.error; + } + } + } else f.get(E) ? f.get(E).forEach(function (t) { + return l.add(t); + }) : E.initialStateNodes.forEach(function (t) { + return l.add(t); + }); + } + } catch (t) { + o = { + error: t + }; + } finally { + try { + m && !m.done && (a = g["return"]) && a.call(g); + } finally { + if (o) throw o.error; + } + } -function a(t) { - return function (n) { - return t === n; - }; -} + try { + for (var b = r(l), _ = b.next(); !_.done; _ = b.next()) { + var E; -function u(t) { - return "string" == typeof t ? { - type: t - } : t; -} + for (v = (E = _.value).parent; v && !l.has(v);) { + l.add(v), v = v.parent; + } + } + } catch (t) { + u = { + error: t + }; + } finally { + try { + _ && !_.done && (h = b["return"]) && h.call(b); + } finally { + if (u) throw u.error; + } + } -function c(t, n) { - return { - value: t, - context: n, - actions: [], - changed: !1, - matches: a(t) - }; -} + return l; + } -function f(t, n, e) { - var r = n, - o = !1; - return [t.filter(function (t) { - if ("xstate.assign" === t.type) { - o = !0; - var n = Object.assign({}, r); - return "function" == typeof t.assignment ? n = t.assignment(r, e) : Object.keys(t.assignment).forEach(function (o) { - n[o] = "function" == typeof t.assignment[o] ? t.assignment[o](r, e) : t.assignment[o]; - }), r = n, !1; + function q(t) { + var e, + n, + i = new Map(); + + try { + for (var o = r(t), a = o.next(); !a.done; a = o.next()) { + var s = a.value; + i.has(s) || i.set(s, []), s.parent && (i.has(s.parent) || i.set(s.parent, []), i.get(s.parent).push(s)); + } + } catch (t) { + e = { + error: t + }; + } finally { + try { + a && !a.done && (n = o["return"]) && n.call(o); + } finally { + if (e) throw e.error; + } } - return !0; - }), r, o]; -} + return i; + } -function s(n, o) { - void 0 === o && (o = {}); - var s = t(f(r(n.states[n.initial].entry).map(function (t) { - return i(t, o.actions); - }), n.context, e), 2), - l = s[0], - v = s[1], - y = { - config: n, - _options: o, - initialState: { - value: n.initial, - actions: l, - context: v, - matches: a(n.initial) - }, - transition: function transition(e, o) { - var s, - l, - v = "string" == typeof e ? { - value: e, - context: n.context - } : e, - p = v.value, - g = v.context, - d = u(o), - x = n.states[p]; + function $(t, e) { + return function t(e, n) { + var r = n.get(e); + if (!r) return {}; - if (x.on) { - var m = r(x.on[d.type]); + if ("compound" === e.type) { + var i = r[0]; + if (!i) return {}; + if (F(i)) return i.key; + } - try { - for (var h = function (t) { - var n = "function" == typeof Symbol && Symbol.iterator, - e = n && t[n], - r = 0; - if (e) return e.call(t); - if (t && "number" == typeof t.length) return { - next: function next() { - return t && r >= t.length && (t = void 0), { - value: t && t[r++], - done: !t - }; - } - }; - throw new TypeError(n ? "Object is not iterable." : "Symbol.iterator is not defined."); - }(m), b = h.next(); !b.done; b = h.next()) { - var S = b.value; - if (void 0 === S) return c(p, g); + var o = {}; + return r.forEach(function (e) { + o[e.key] = t(e, n); + }), o; + }(t, q(J([t], e))); + } - var w = "string" == typeof S ? { - target: S - } : S, - j = w.target, - E = w.actions, - R = void 0 === E ? [] : E, - N = w.cond, - O = void 0 === N ? function () { - return !0; - } : N, - _ = void 0 === j, - k = null != j ? j : p, - T = n.states[k]; + function X(t, e) { + return Array.isArray(t) ? t.some(function (t) { + return t === e; + }) : t instanceof Set && t.has(e); + } - if (O(g, d)) { - var q = t(f((_ ? r(R) : [].concat(x.exit, R, T.entry).filter(function (t) { - return t; - })).map(function (t) { - return i(t, y._options.actions); - }), g, d), 3), - z = q[0], - A = q[1], - B = q[2], - C = null != j ? j : p; - return { - value: C, - context: A, - actions: z, - changed: j !== p || z.length > 0 || B, - matches: a(C) - }; - } - } - } catch (t) { - s = { - error: t - }; - } finally { - try { - b && !b.done && (l = h["return"]) && l.call(h); - } finally { - if (s) throw s.error; - } - } - } + function H(t, e) { + return "compound" === e.type ? U(e).some(function (e) { + return "final" === e.type && X(t, e); + }) : "parallel" === e.type && U(e).every(function (e) { + return H(t, e); + }); + } - return c(p, g); + function G(t) { + return new Set(g(t.map(function (t) { + return t.tags; + }))); + } + + var K = t.ActionTypes.Start, + Q = t.ActionTypes.Stop, + W = t.ActionTypes.Raise, + Y = t.ActionTypes.Send, + Z = t.ActionTypes.Cancel, + tt = t.ActionTypes.NullEvent, + et = t.ActionTypes.Assign, + nt = (t.ActionTypes.After, t.ActionTypes.DoneState, t.ActionTypes.Log), + rt = t.ActionTypes.Init, + it = t.ActionTypes.Invoke, + ot = (t.ActionTypes.ErrorExecution, t.ActionTypes.ErrorPlatform), + at = t.ActionTypes.ErrorCustom, + st = t.ActionTypes.Update, + ct = t.ActionTypes.Choose, + ut = t.ActionTypes.Pure, + ht = L({ + type: rt + }); + + function ft(t, e) { + return e && e[t] || void 0; + } + + function lt(t, n) { + var r; + if (A(t) || "number" == typeof t) r = N(i = ft(t, n)) ? { + type: t, + exec: i + } : i || { + type: t, + exec: void 0 + };else if (N(t)) r = { + type: t.name || t.toString(), + exec: t + };else { + var i; + if (N(i = ft(t.type, n))) r = _e(_e({}, t), { + exec: i + });else if (i) { + var o = i.type || t.type; + r = _e(_e(_e({}, i), t), { + type: o + }); + } else r = t; } + return r; + } + + var dt = function dt(t, e) { + return t ? (T(t) ? t : [t]).map(function (t) { + return lt(t, e); + }) : []; }; - return y; -} -var l = function l(t, n) { - return t.actions.forEach(function (e) { - var r = e.exec; - return r && r(t.context, n); - }); -}; + function pt(t) { + var n = lt(t); + return _e(_e({ + id: A(t) ? t : n.id + }, n), { + type: n.type + }); + } -function v(t) { - var r = t.initialState, - o = n.NotStarted, - i = new Set(), - c = { - _machine: t, - send: function send(e) { - o === n.Running && (r = t.transition(r, e), l(r, u(e)), i.forEach(function (t) { - return t(r); - })); - }, - subscribe: function subscribe(t) { - return i.add(t), t(r), { - unsubscribe: function unsubscribe() { - return i["delete"](t); - } - }; - }, - start: function start(i) { - if (i) { - var u = "object" == typeof i ? i : { - context: t.config.context, - value: i - }; - r = { - value: u.value, - actions: [], - context: u.context, - matches: a(u.value) - }; - } + function vt(e) { + return A(e) ? { + type: W, + event: e + } : yt(e, { + to: t.SpecialTargets.Internal + }); + } - return o = n.Running, l(r, e), c; - }, - stop: function stop() { - return o = n.Stopped, i.clear(), c; - }, + function yt(t, e) { + return { + to: e ? e.to : void 0, + type: Y, + event: N(t) ? t : V(t), + delay: e ? e.delay : void 0, + id: e && void 0 !== e.id ? e.id : N(t) ? t.name : u(t) + }; + } - get state() { - return r; - }, + function gt(n, r) { + return yt(n, _e(_e({}, r), { + to: t.SpecialTargets.Parent + })); + } - get status() { - return o; - } + function mt() { + return gt(st); + } + var St = function St(t, e) { + return { + context: t, + event: e + }; }; - return c; -} -cc._RF.pop(); - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0cy9PUDE1L3NjcmlwdC9zdGF0ZS5qcyJdLCJuYW1lcyI6WyJ0IiwibiIsImUiLCJTeW1ib2wiLCJpdGVyYXRvciIsInIiLCJvIiwiaSIsImNhbGwiLCJhIiwibmV4dCIsImRvbmUiLCJwdXNoIiwidmFsdWUiLCJlcnJvciIsIk5vdFN0YXJ0ZWQiLCJSdW5uaW5nIiwiU3RvcHBlZCIsInR5cGUiLCJjb25jYXQiLCJhc3NpZ25tZW50IiwibmFtZSIsImV4ZWMiLCJ1IiwiYyIsImNvbnRleHQiLCJhY3Rpb25zIiwiY2hhbmdlZCIsIm1hdGNoZXMiLCJmIiwiZmlsdGVyIiwiT2JqZWN0IiwiYXNzaWduIiwia2V5cyIsImZvckVhY2giLCJzIiwic3RhdGVzIiwiaW5pdGlhbCIsImVudHJ5IiwibWFwIiwibCIsInYiLCJ5IiwiY29uZmlnIiwiX29wdGlvbnMiLCJpbml0aWFsU3RhdGUiLCJ0cmFuc2l0aW9uIiwicCIsImciLCJkIiwieCIsIm9uIiwibSIsImgiLCJsZW5ndGgiLCJUeXBlRXJyb3IiLCJiIiwiUyIsInciLCJ0YXJnZXQiLCJqIiwiRSIsIlIiLCJOIiwiY29uZCIsIk8iLCJfIiwiayIsIlQiLCJxIiwiZXhpdCIsInoiLCJBIiwiQiIsIkMiLCJTZXQiLCJfbWFjaGluZSIsInNlbmQiLCJzdWJzY3JpYmUiLCJhZGQiLCJ1bnN1YnNjcmliZSIsInN0YXJ0Iiwic3RvcCIsImNsZWFyIiwic3RhdGUiLCJzdGF0dXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLENBQVQsQ0FBV0EsQ0FBWCxFQUFhQyxDQUFiLEVBQWU7QUFBQyxNQUFJQyxDQUFDLEdBQUMsY0FBWSxPQUFPQyxNQUFuQixJQUEyQkgsQ0FBQyxDQUFDRyxNQUFNLENBQUNDLFFBQVIsQ0FBbEM7QUFBb0QsTUFBRyxDQUFDRixDQUFKLEVBQU0sT0FBT0YsQ0FBUDtBQUFTLE1BQUlLLENBQUo7QUFBQSxNQUFNQyxDQUFOO0FBQUEsTUFBUUMsQ0FBQyxHQUFDTCxDQUFDLENBQUNNLElBQUYsQ0FBT1IsQ0FBUCxDQUFWO0FBQUEsTUFBb0JTLENBQUMsR0FBQyxFQUF0Qjs7QUFBeUIsTUFBRztBQUFDLFdBQUssQ0FBQyxLQUFLLENBQUwsS0FBU1IsQ0FBVCxJQUFZQSxDQUFDLEtBQUksQ0FBbEIsS0FBc0IsQ0FBQyxDQUFDSSxDQUFDLEdBQUNFLENBQUMsQ0FBQ0csSUFBRixFQUFILEVBQWFDLElBQXpDO0FBQStDRixNQUFBQSxDQUFDLENBQUNHLElBQUYsQ0FBT1AsQ0FBQyxDQUFDUSxLQUFUO0FBQS9DO0FBQStELEdBQW5FLENBQW1FLE9BQU1iLENBQU4sRUFBUTtBQUFDTSxJQUFBQSxDQUFDLEdBQUM7QUFBQ1EsTUFBQUEsS0FBSyxFQUFDZDtBQUFQLEtBQUY7QUFBWSxHQUF4RixTQUErRjtBQUFDLFFBQUc7QUFBQ0ssTUFBQUEsQ0FBQyxJQUFFLENBQUNBLENBQUMsQ0FBQ00sSUFBTixLQUFhVCxDQUFDLEdBQUNLLENBQUMsVUFBaEIsS0FBMEJMLENBQUMsQ0FBQ00sSUFBRixDQUFPRCxDQUFQLENBQTFCO0FBQW9DLEtBQXhDLFNBQStDO0FBQUMsVUFBR0QsQ0FBSCxFQUFLLE1BQU1BLENBQUMsQ0FBQ1EsS0FBUjtBQUFjO0FBQUM7O0FBQUEsU0FBT0wsQ0FBUDtBQUFTOztBQUFBLElBQUlSLENBQUo7O0FBQU0sQ0FBQyxVQUFTRCxDQUFULEVBQVc7QUFBQ0EsRUFBQUEsQ0FBQyxDQUFDQSxDQUFDLENBQUNlLFVBQUYsR0FBYSxDQUFkLENBQUQsR0FBa0IsWUFBbEIsRUFBK0JmLENBQUMsQ0FBQ0EsQ0FBQyxDQUFDZ0IsT0FBRixHQUFVLENBQVgsQ0FBRCxHQUFlLFNBQTlDLEVBQXdEaEIsQ0FBQyxDQUFDQSxDQUFDLENBQUNpQixPQUFGLEdBQVUsQ0FBWCxDQUFELEdBQWUsU0FBdkU7QUFBaUYsQ0FBN0YsQ0FBOEZoQixDQUFDLGlDQUFHQSxDQUFDLEdBQUMsRUFBTCxDQUEvRixDQUFEO0FBQTBHLElBQUlDLENBQUMsR0FBQztBQUFDZ0IsRUFBQUEsSUFBSSxFQUFDO0FBQU4sQ0FBTjs7QUFBMkIsU0FBU2IsQ0FBVCxDQUFXTCxDQUFYLEVBQWE7QUFBQyxTQUFPLEtBQUssQ0FBTCxLQUFTQSxDQUFULEdBQVcsRUFBWCxHQUFjLEdBQUdtQixNQUFILENBQVVuQixDQUFWLENBQXJCO0FBQWtDOztBQUFBLFNBQVNNLENBQVQsQ0FBV04sQ0FBWCxFQUFhO0FBQUMsU0FBTTtBQUFDa0IsSUFBQUEsSUFBSSxFQUFDLGVBQU47QUFBc0JFLElBQUFBLFVBQVUsRUFBQ3BCO0FBQWpDLEdBQU47QUFBMEM7O0FBQUEsU0FBU08sQ0FBVCxDQUFXUCxDQUFYLEVBQWFDLENBQWIsRUFBZTtBQUFDLFNBQU0sWUFBVSxRQUFPRCxDQUFDLEdBQUMsWUFBVSxPQUFPQSxDQUFqQixJQUFvQkMsQ0FBcEIsSUFBdUJBLENBQUMsQ0FBQ0QsQ0FBRCxDQUF4QixHQUE0QkMsQ0FBQyxDQUFDRCxDQUFELENBQTdCLEdBQWlDQSxDQUExQyxDQUFWLEdBQXVEO0FBQUNrQixJQUFBQSxJQUFJLEVBQUNsQjtBQUFOLEdBQXZELEdBQWdFLGNBQVksT0FBT0EsQ0FBbkIsR0FBcUI7QUFBQ2tCLElBQUFBLElBQUksRUFBQ2xCLENBQUMsQ0FBQ3FCLElBQVI7QUFBYUMsSUFBQUEsSUFBSSxFQUFDdEI7QUFBbEIsR0FBckIsR0FBMENBLENBQWhIO0FBQWtIOztBQUFBLFNBQVNTLENBQVQsQ0FBV1QsQ0FBWCxFQUFhO0FBQUMsU0FBTyxVQUFTQyxDQUFULEVBQVc7QUFBQyxXQUFPRCxDQUFDLEtBQUdDLENBQVg7QUFBYSxHQUFoQztBQUFpQzs7QUFBQSxTQUFTc0IsQ0FBVCxDQUFXdkIsQ0FBWCxFQUFhO0FBQUMsU0FBTSxZQUFVLE9BQU9BLENBQWpCLEdBQW1CO0FBQUNrQixJQUFBQSxJQUFJLEVBQUNsQjtBQUFOLEdBQW5CLEdBQTRCQSxDQUFsQztBQUFvQzs7QUFBQSxTQUFTd0IsQ0FBVCxDQUFXeEIsQ0FBWCxFQUFhQyxDQUFiLEVBQWU7QUFBQyxTQUFNO0FBQUNZLElBQUFBLEtBQUssRUFBQ2IsQ0FBUDtBQUFTeUIsSUFBQUEsT0FBTyxFQUFDeEIsQ0FBakI7QUFBbUJ5QixJQUFBQSxPQUFPLEVBQUMsRUFBM0I7QUFBOEJDLElBQUFBLE9BQU8sRUFBQyxDQUFDLENBQXZDO0FBQXlDQyxJQUFBQSxPQUFPLEVBQUNuQixDQUFDLENBQUNULENBQUQ7QUFBbEQsR0FBTjtBQUE2RDs7QUFBQSxTQUFTNkIsQ0FBVCxDQUFXN0IsQ0FBWCxFQUFhQyxDQUFiLEVBQWVDLENBQWYsRUFBaUI7QUFBQyxNQUFJRyxDQUFDLEdBQUNKLENBQU47QUFBQSxNQUFRSyxDQUFDLEdBQUMsQ0FBQyxDQUFYO0FBQWEsU0FBTSxDQUFDTixDQUFDLENBQUM4QixNQUFGLENBQVUsVUFBUzlCLENBQVQsRUFBVztBQUFDLFFBQUcsb0JBQWtCQSxDQUFDLENBQUNrQixJQUF2QixFQUE0QjtBQUFDWixNQUFBQSxDQUFDLEdBQUMsQ0FBQyxDQUFIO0FBQUssVUFBSUwsQ0FBQyxHQUFDOEIsTUFBTSxDQUFDQyxNQUFQLENBQWMsRUFBZCxFQUFpQjNCLENBQWpCLENBQU47QUFBMEIsYUFBTSxjQUFZLE9BQU9MLENBQUMsQ0FBQ29CLFVBQXJCLEdBQWdDbkIsQ0FBQyxHQUFDRCxDQUFDLENBQUNvQixVQUFGLENBQWFmLENBQWIsRUFBZUgsQ0FBZixDQUFsQyxHQUFvRDZCLE1BQU0sQ0FBQ0UsSUFBUCxDQUFZakMsQ0FBQyxDQUFDb0IsVUFBZCxFQUEwQmMsT0FBMUIsQ0FBbUMsVUFBUzVCLENBQVQsRUFBVztBQUFDTCxRQUFBQSxDQUFDLENBQUNLLENBQUQsQ0FBRCxHQUFLLGNBQVksT0FBT04sQ0FBQyxDQUFDb0IsVUFBRixDQUFhZCxDQUFiLENBQW5CLEdBQW1DTixDQUFDLENBQUNvQixVQUFGLENBQWFkLENBQWIsRUFBZ0JELENBQWhCLEVBQWtCSCxDQUFsQixDQUFuQyxHQUF3REYsQ0FBQyxDQUFDb0IsVUFBRixDQUFhZCxDQUFiLENBQTdEO0FBQTZFLE9BQTVILENBQXBELEVBQW1MRCxDQUFDLEdBQUNKLENBQXJMLEVBQXVMLENBQUMsQ0FBOUw7QUFBZ007O0FBQUEsV0FBTSxDQUFDLENBQVA7QUFBUyxHQUEzUixDQUFELEVBQStSSSxDQUEvUixFQUFpU0MsQ0FBalMsQ0FBTjtBQUEwUzs7QUFBQSxTQUFTNkIsQ0FBVCxDQUFXbEMsQ0FBWCxFQUFhSyxDQUFiLEVBQWU7QUFBQyxPQUFLLENBQUwsS0FBU0EsQ0FBVCxLQUFhQSxDQUFDLEdBQUMsRUFBZjtBQUFtQixNQUFJNkIsQ0FBQyxHQUFDbkMsQ0FBQyxDQUFDNkIsQ0FBQyxDQUFDeEIsQ0FBQyxDQUFDSixDQUFDLENBQUNtQyxNQUFGLENBQVNuQyxDQUFDLENBQUNvQyxPQUFYLEVBQW9CQyxLQUFyQixDQUFELENBQTZCQyxHQUE3QixDQUFrQyxVQUFTdkMsQ0FBVCxFQUFXO0FBQUMsV0FBT08sQ0FBQyxDQUFDUCxDQUFELEVBQUdNLENBQUMsQ0FBQ29CLE9BQUwsQ0FBUjtBQUFzQixHQUFwRSxDQUFELEVBQXdFekIsQ0FBQyxDQUFDd0IsT0FBMUUsRUFBa0Z2QixDQUFsRixDQUFGLEVBQXVGLENBQXZGLENBQVA7QUFBQSxNQUFpR3NDLENBQUMsR0FBQ0wsQ0FBQyxDQUFDLENBQUQsQ0FBcEc7QUFBQSxNQUF3R00sQ0FBQyxHQUFDTixDQUFDLENBQUMsQ0FBRCxDQUEzRztBQUFBLE1BQStHTyxDQUFDLEdBQUM7QUFBQ0MsSUFBQUEsTUFBTSxFQUFDMUMsQ0FBUjtBQUFVMkMsSUFBQUEsUUFBUSxFQUFDdEMsQ0FBbkI7QUFBcUJ1QyxJQUFBQSxZQUFZLEVBQUM7QUFBQ2hDLE1BQUFBLEtBQUssRUFBQ1osQ0FBQyxDQUFDb0MsT0FBVDtBQUFpQlgsTUFBQUEsT0FBTyxFQUFDYyxDQUF6QjtBQUEyQmYsTUFBQUEsT0FBTyxFQUFDZ0IsQ0FBbkM7QUFBcUNiLE1BQUFBLE9BQU8sRUFBQ25CLENBQUMsQ0FBQ1IsQ0FBQyxDQUFDb0MsT0FBSDtBQUE5QyxLQUFsQztBQUE2RlMsSUFBQUEsVUFBVSxFQUFDLG9CQUFTNUMsQ0FBVCxFQUFXSSxDQUFYLEVBQWE7QUFBQyxVQUFJNkIsQ0FBSjtBQUFBLFVBQU1LLENBQU47QUFBQSxVQUFRQyxDQUFDLEdBQUMsWUFBVSxPQUFPdkMsQ0FBakIsR0FBbUI7QUFBQ1csUUFBQUEsS0FBSyxFQUFDWCxDQUFQO0FBQVN1QixRQUFBQSxPQUFPLEVBQUN4QixDQUFDLENBQUN3QjtBQUFuQixPQUFuQixHQUErQ3ZCLENBQXpEO0FBQUEsVUFBMkQ2QyxDQUFDLEdBQUNOLENBQUMsQ0FBQzVCLEtBQS9EO0FBQUEsVUFBcUVtQyxDQUFDLEdBQUNQLENBQUMsQ0FBQ2hCLE9BQXpFO0FBQUEsVUFBaUZ3QixDQUFDLEdBQUMxQixDQUFDLENBQUNqQixDQUFELENBQXBGO0FBQUEsVUFBd0Y0QyxDQUFDLEdBQUNqRCxDQUFDLENBQUNtQyxNQUFGLENBQVNXLENBQVQsQ0FBMUY7O0FBQXNHLFVBQUdHLENBQUMsQ0FBQ0MsRUFBTCxFQUFRO0FBQUMsWUFBSUMsQ0FBQyxHQUFDL0MsQ0FBQyxDQUFDNkMsQ0FBQyxDQUFDQyxFQUFGLENBQUtGLENBQUMsQ0FBQy9CLElBQVAsQ0FBRCxDQUFQOztBQUFzQixZQUFHO0FBQUMsZUFBSSxJQUFJbUMsQ0FBQyxHQUFDLFVBQVNyRCxDQUFULEVBQVc7QUFBQyxnQkFBSUMsQ0FBQyxHQUFDLGNBQVksT0FBT0UsTUFBbkIsSUFBMkJBLE1BQU0sQ0FBQ0MsUUFBeEM7QUFBQSxnQkFBaURGLENBQUMsR0FBQ0QsQ0FBQyxJQUFFRCxDQUFDLENBQUNDLENBQUQsQ0FBdkQ7QUFBQSxnQkFBMkRJLENBQUMsR0FBQyxDQUE3RDtBQUErRCxnQkFBR0gsQ0FBSCxFQUFLLE9BQU9BLENBQUMsQ0FBQ00sSUFBRixDQUFPUixDQUFQLENBQVA7QUFBaUIsZ0JBQUdBLENBQUMsSUFBRSxZQUFVLE9BQU9BLENBQUMsQ0FBQ3NELE1BQXpCLEVBQWdDLE9BQU07QUFBQzVDLGNBQUFBLElBQUksRUFBQyxnQkFBVTtBQUFDLHVCQUFPVixDQUFDLElBQUVLLENBQUMsSUFBRUwsQ0FBQyxDQUFDc0QsTUFBUixLQUFpQnRELENBQUMsR0FBQyxLQUFLLENBQXhCLEdBQTJCO0FBQUNhLGtCQUFBQSxLQUFLLEVBQUNiLENBQUMsSUFBRUEsQ0FBQyxDQUFDSyxDQUFDLEVBQUYsQ0FBWDtBQUFpQk0sa0JBQUFBLElBQUksRUFBQyxDQUFDWDtBQUF2QixpQkFBbEM7QUFBNEQ7QUFBN0UsYUFBTjtBQUFxRixrQkFBTSxJQUFJdUQsU0FBSixDQUFjdEQsQ0FBQyxHQUFDLHlCQUFELEdBQTJCLGlDQUExQyxDQUFOO0FBQW1GLFdBQXpTLENBQTBTbUQsQ0FBMVMsQ0FBTixFQUFtVEksQ0FBQyxHQUFDSCxDQUFDLENBQUMzQyxJQUFGLEVBQXpULEVBQWtVLENBQUM4QyxDQUFDLENBQUM3QyxJQUFyVSxFQUEwVTZDLENBQUMsR0FBQ0gsQ0FBQyxDQUFDM0MsSUFBRixFQUE1VSxFQUFxVjtBQUFDLGdCQUFJK0MsQ0FBQyxHQUFDRCxDQUFDLENBQUMzQyxLQUFSO0FBQWMsZ0JBQUcsS0FBSyxDQUFMLEtBQVM0QyxDQUFaLEVBQWMsT0FBT2pDLENBQUMsQ0FBQ3VCLENBQUQsRUFBR0MsQ0FBSCxDQUFSOztBQUFjLGdCQUFJVSxDQUFDLEdBQUMsWUFBVSxPQUFPRCxDQUFqQixHQUFtQjtBQUFDRSxjQUFBQSxNQUFNLEVBQUNGO0FBQVIsYUFBbkIsR0FBOEJBLENBQXBDO0FBQUEsZ0JBQXNDRyxDQUFDLEdBQUNGLENBQUMsQ0FBQ0MsTUFBMUM7QUFBQSxnQkFBaURFLENBQUMsR0FBQ0gsQ0FBQyxDQUFDaEMsT0FBckQ7QUFBQSxnQkFBNkRvQyxDQUFDLEdBQUMsS0FBSyxDQUFMLEtBQVNELENBQVQsR0FBVyxFQUFYLEdBQWNBLENBQTdFO0FBQUEsZ0JBQStFRSxDQUFDLEdBQUNMLENBQUMsQ0FBQ00sSUFBbkY7QUFBQSxnQkFBd0ZDLENBQUMsR0FBQyxLQUFLLENBQUwsS0FBU0YsQ0FBVCxHQUFXLFlBQVU7QUFBQyxxQkFBTSxDQUFDLENBQVA7QUFBUyxhQUEvQixHQUFnQ0EsQ0FBMUg7QUFBQSxnQkFBNEhHLENBQUMsR0FBQyxLQUFLLENBQUwsS0FBU04sQ0FBdkk7QUFBQSxnQkFBeUlPLENBQUMsR0FBQyxRQUFNUCxDQUFOLEdBQVFBLENBQVIsR0FBVWIsQ0FBcko7QUFBQSxnQkFBdUpxQixDQUFDLEdBQUNuRSxDQUFDLENBQUNtQyxNQUFGLENBQVMrQixDQUFULENBQXpKOztBQUFxSyxnQkFBR0YsQ0FBQyxDQUFDakIsQ0FBRCxFQUFHQyxDQUFILENBQUosRUFBVTtBQUFDLGtCQUFJb0IsQ0FBQyxHQUFDckUsQ0FBQyxDQUFDNkIsQ0FBQyxDQUFDLENBQUNxQyxDQUFDLEdBQUM3RCxDQUFDLENBQUN5RCxDQUFELENBQUYsR0FBTSxHQUFHM0MsTUFBSCxDQUFVK0IsQ0FBQyxDQUFDb0IsSUFBWixFQUFpQlIsQ0FBakIsRUFBbUJNLENBQUMsQ0FBQzlCLEtBQXJCLEVBQTRCUixNQUE1QixDQUFvQyxVQUFTOUIsQ0FBVCxFQUFXO0FBQUMsdUJBQU9BLENBQVA7QUFBUyxlQUF6RCxDQUFSLEVBQXFFdUMsR0FBckUsQ0FBMEUsVUFBU3ZDLENBQVQsRUFBVztBQUFDLHVCQUFPTyxDQUFDLENBQUNQLENBQUQsRUFBRzBDLENBQUMsQ0FBQ0UsUUFBRixDQUFXbEIsT0FBZCxDQUFSO0FBQStCLGVBQXJILENBQUQsRUFBeUhzQixDQUF6SCxFQUEySEMsQ0FBM0gsQ0FBRixFQUFnSSxDQUFoSSxDQUFQO0FBQUEsa0JBQTBJc0IsQ0FBQyxHQUFDRixDQUFDLENBQUMsQ0FBRCxDQUE3STtBQUFBLGtCQUFpSkcsQ0FBQyxHQUFDSCxDQUFDLENBQUMsQ0FBRCxDQUFwSjtBQUFBLGtCQUF3SkksQ0FBQyxHQUFDSixDQUFDLENBQUMsQ0FBRCxDQUEzSjtBQUFBLGtCQUErSkssQ0FBQyxHQUFDLFFBQU1kLENBQU4sR0FBUUEsQ0FBUixHQUFVYixDQUEzSztBQUE2SyxxQkFBTTtBQUFDbEMsZ0JBQUFBLEtBQUssRUFBQzZELENBQVA7QUFBU2pELGdCQUFBQSxPQUFPLEVBQUMrQyxDQUFqQjtBQUFtQjlDLGdCQUFBQSxPQUFPLEVBQUM2QyxDQUEzQjtBQUE2QjVDLGdCQUFBQSxPQUFPLEVBQUNpQyxDQUFDLEtBQUdiLENBQUosSUFBT3dCLENBQUMsQ0FBQ2pCLE1BQUYsR0FBUyxDQUFoQixJQUFtQm1CLENBQXhEO0FBQTBEN0MsZ0JBQUFBLE9BQU8sRUFBQ25CLENBQUMsQ0FBQ2lFLENBQUQ7QUFBbkUsZUFBTjtBQUE4RTtBQUFDO0FBQUMsU0FBanpCLENBQWl6QixPQUFNMUUsQ0FBTixFQUFRO0FBQUNtQyxVQUFBQSxDQUFDLEdBQUM7QUFBQ3JCLFlBQUFBLEtBQUssRUFBQ2Q7QUFBUCxXQUFGO0FBQVksU0FBdDBCLFNBQTYwQjtBQUFDLGNBQUc7QUFBQ3dELFlBQUFBLENBQUMsSUFBRSxDQUFDQSxDQUFDLENBQUM3QyxJQUFOLEtBQWE2QixDQUFDLEdBQUNhLENBQUMsVUFBaEIsS0FBMEJiLENBQUMsQ0FBQ2hDLElBQUYsQ0FBTzZDLENBQVAsQ0FBMUI7QUFBb0MsV0FBeEMsU0FBK0M7QUFBQyxnQkFBR2xCLENBQUgsRUFBSyxNQUFNQSxDQUFDLENBQUNyQixLQUFSO0FBQWM7QUFBQztBQUFDOztBQUFBLGFBQU9VLENBQUMsQ0FBQ3VCLENBQUQsRUFBR0MsQ0FBSCxDQUFSO0FBQWM7QUFBNXBDLEdBQWpIO0FBQSt3QyxTQUFPTixDQUFQO0FBQVM7O0FBQUEsSUFBSUYsQ0FBQyxHQUFDLFNBQUZBLENBQUUsQ0FBU3hDLENBQVQsRUFBV0MsQ0FBWCxFQUFhO0FBQUMsU0FBT0QsQ0FBQyxDQUFDMEIsT0FBRixDQUFVUSxPQUFWLENBQW1CLFVBQVNoQyxDQUFULEVBQVc7QUFBQyxRQUFJRyxDQUFDLEdBQUNILENBQUMsQ0FBQ29CLElBQVI7QUFBYSxXQUFPakIsQ0FBQyxJQUFFQSxDQUFDLENBQUNMLENBQUMsQ0FBQ3lCLE9BQUgsRUFBV3hCLENBQVgsQ0FBWDtBQUF5QixHQUFyRSxDQUFQO0FBQStFLENBQW5HOztBQUFvRyxTQUFTd0MsQ0FBVCxDQUFXekMsQ0FBWCxFQUFhO0FBQUMsTUFBSUssQ0FBQyxHQUFDTCxDQUFDLENBQUM2QyxZQUFSO0FBQUEsTUFBcUJ2QyxDQUFDLEdBQUNMLENBQUMsQ0FBQ2MsVUFBekI7QUFBQSxNQUFvQ1IsQ0FBQyxHQUFDLElBQUlvRSxHQUFKLEVBQXRDO0FBQUEsTUFBOENuRCxDQUFDLEdBQUM7QUFBQ29ELElBQUFBLFFBQVEsRUFBQzVFLENBQVY7QUFBWTZFLElBQUFBLElBQUksRUFBQyxjQUFTM0UsQ0FBVCxFQUFXO0FBQUNJLE1BQUFBLENBQUMsS0FBR0wsQ0FBQyxDQUFDZSxPQUFOLEtBQWdCWCxDQUFDLEdBQUNMLENBQUMsQ0FBQzhDLFVBQUYsQ0FBYXpDLENBQWIsRUFBZUgsQ0FBZixDQUFGLEVBQW9Cc0MsQ0FBQyxDQUFDbkMsQ0FBRCxFQUFHa0IsQ0FBQyxDQUFDckIsQ0FBRCxDQUFKLENBQXJCLEVBQThCSyxDQUFDLENBQUMyQixPQUFGLENBQVcsVUFBU2xDLENBQVQsRUFBVztBQUFDLGVBQU9BLENBQUMsQ0FBQ0ssQ0FBRCxDQUFSO0FBQVksT0FBbkMsQ0FBOUM7QUFBcUYsS0FBbEg7QUFBbUh5RSxJQUFBQSxTQUFTLEVBQUMsbUJBQVM5RSxDQUFULEVBQVc7QUFBQyxhQUFPTyxDQUFDLENBQUN3RSxHQUFGLENBQU0vRSxDQUFOLEdBQVNBLENBQUMsQ0FBQ0ssQ0FBRCxDQUFWLEVBQWM7QUFBQzJFLFFBQUFBLFdBQVcsRUFBQyx1QkFBVTtBQUFDLGlCQUFPekUsQ0FBQyxVQUFELENBQVNQLENBQVQsQ0FBUDtBQUFtQjtBQUEzQyxPQUFyQjtBQUFrRSxLQUEzTTtBQUE0TWlGLElBQUFBLEtBQUssRUFBQyxlQUFTMUUsQ0FBVCxFQUFXO0FBQUMsVUFBR0EsQ0FBSCxFQUFLO0FBQUMsWUFBSWdCLENBQUMsR0FBQyxZQUFVLE9BQU9oQixDQUFqQixHQUFtQkEsQ0FBbkIsR0FBcUI7QUFBQ2tCLFVBQUFBLE9BQU8sRUFBQ3pCLENBQUMsQ0FBQzJDLE1BQUYsQ0FBU2xCLE9BQWxCO0FBQTBCWixVQUFBQSxLQUFLLEVBQUNOO0FBQWhDLFNBQTNCO0FBQThERixRQUFBQSxDQUFDLEdBQUM7QUFBQ1EsVUFBQUEsS0FBSyxFQUFDVSxDQUFDLENBQUNWLEtBQVQ7QUFBZWEsVUFBQUEsT0FBTyxFQUFDLEVBQXZCO0FBQTBCRCxVQUFBQSxPQUFPLEVBQUNGLENBQUMsQ0FBQ0UsT0FBcEM7QUFBNENHLFVBQUFBLE9BQU8sRUFBQ25CLENBQUMsQ0FBQ2MsQ0FBQyxDQUFDVixLQUFIO0FBQXJELFNBQUY7QUFBa0U7O0FBQUEsYUFBT1AsQ0FBQyxHQUFDTCxDQUFDLENBQUNlLE9BQUosRUFBWXdCLENBQUMsQ0FBQ25DLENBQUQsRUFBR0gsQ0FBSCxDQUFiLEVBQW1Cc0IsQ0FBMUI7QUFBNEIsS0FBaFk7QUFBaVkwRCxJQUFBQSxJQUFJLEVBQUMsZ0JBQVU7QUFBQyxhQUFPNUUsQ0FBQyxHQUFDTCxDQUFDLENBQUNnQixPQUFKLEVBQVlWLENBQUMsQ0FBQzRFLEtBQUYsRUFBWixFQUFzQjNELENBQTdCO0FBQStCLEtBQWhiOztBQUFpYixRQUFJNEQsS0FBSixHQUFXO0FBQUMsYUFBTy9FLENBQVA7QUFBUyxLQUF0Yzs7QUFBdWMsUUFBSWdGLE1BQUosR0FBWTtBQUFDLGFBQU8vRSxDQUFQO0FBQVM7O0FBQTdkLEdBQWhEO0FBQStnQixTQUFPa0IsQ0FBUDtBQUFTIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvKiEgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbkNvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxuXG5QZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcbnB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cblxuVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxuUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXG5BTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXG5JTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cbkxPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXG5PVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXG5QRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cbmZ1bmN0aW9uIHQodCxuKXt2YXIgZT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJnRbU3ltYm9sLml0ZXJhdG9yXTtpZighZSlyZXR1cm4gdDt2YXIgcixvLGk9ZS5jYWxsKHQpLGE9W107dHJ5e2Zvcig7KHZvaWQgMD09PW58fG4tLSA+MCkmJiEocj1pLm5leHQoKSkuZG9uZTspYS5wdXNoKHIudmFsdWUpfWNhdGNoKHQpe289e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e3ImJiFyLmRvbmUmJihlPWkucmV0dXJuKSYmZS5jYWxsKGkpfWZpbmFsbHl7aWYobyl0aHJvdyBvLmVycm9yfX1yZXR1cm4gYX12YXIgbjshZnVuY3Rpb24odCl7dFt0Lk5vdFN0YXJ0ZWQ9MF09XCJOb3RTdGFydGVkXCIsdFt0LlJ1bm5pbmc9MV09XCJSdW5uaW5nXCIsdFt0LlN0b3BwZWQ9Ml09XCJTdG9wcGVkXCJ9KG58fChuPXt9KSk7dmFyIGU9e3R5cGU6XCJ4c3RhdGUuaW5pdFwifTtmdW5jdGlvbiByKHQpe3JldHVybiB2b2lkIDA9PT10P1tdOltdLmNvbmNhdCh0KX1mdW5jdGlvbiBvKHQpe3JldHVybnt0eXBlOlwieHN0YXRlLmFzc2lnblwiLGFzc2lnbm1lbnQ6dH19ZnVuY3Rpb24gaSh0LG4pe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZih0PVwic3RyaW5nXCI9PXR5cGVvZiB0JiZuJiZuW3RdP25bdF06dCk/e3R5cGU6dH06XCJmdW5jdGlvblwiPT10eXBlb2YgdD97dHlwZTp0Lm5hbWUsZXhlYzp0fTp0fWZ1bmN0aW9uIGEodCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiB0PT09bn19ZnVuY3Rpb24gdSh0KXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgdD97dHlwZTp0fTp0fWZ1bmN0aW9uIGModCxuKXtyZXR1cm57dmFsdWU6dCxjb250ZXh0Om4sYWN0aW9uczpbXSxjaGFuZ2VkOiExLG1hdGNoZXM6YSh0KX19ZnVuY3Rpb24gZih0LG4sZSl7dmFyIHI9bixvPSExO3JldHVyblt0LmZpbHRlcigoZnVuY3Rpb24odCl7aWYoXCJ4c3RhdGUuYXNzaWduXCI9PT10LnR5cGUpe289ITA7dmFyIG49T2JqZWN0LmFzc2lnbih7fSxyKTtyZXR1cm5cImZ1bmN0aW9uXCI9PXR5cGVvZiB0LmFzc2lnbm1lbnQ/bj10LmFzc2lnbm1lbnQocixlKTpPYmplY3Qua2V5cyh0LmFzc2lnbm1lbnQpLmZvckVhY2goKGZ1bmN0aW9uKG8pe25bb109XCJmdW5jdGlvblwiPT10eXBlb2YgdC5hc3NpZ25tZW50W29dP3QuYXNzaWdubWVudFtvXShyLGUpOnQuYXNzaWdubWVudFtvXX0pKSxyPW4sITF9cmV0dXJuITB9KSkscixvXX1mdW5jdGlvbiBzKG4sbyl7dm9pZCAwPT09byYmKG89e30pO3ZhciBzPXQoZihyKG4uc3RhdGVzW24uaW5pdGlhbF0uZW50cnkpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGkodCxvLmFjdGlvbnMpfSkpLG4uY29udGV4dCxlKSwyKSxsPXNbMF0sdj1zWzFdLHk9e2NvbmZpZzpuLF9vcHRpb25zOm8saW5pdGlhbFN0YXRlOnt2YWx1ZTpuLmluaXRpYWwsYWN0aW9uczpsLGNvbnRleHQ6dixtYXRjaGVzOmEobi5pbml0aWFsKX0sdHJhbnNpdGlvbjpmdW5jdGlvbihlLG8pe3ZhciBzLGwsdj1cInN0cmluZ1wiPT10eXBlb2YgZT97dmFsdWU6ZSxjb250ZXh0Om4uY29udGV4dH06ZSxwPXYudmFsdWUsZz12LmNvbnRleHQsZD11KG8pLHg9bi5zdGF0ZXNbcF07aWYoeC5vbil7dmFyIG09cih4Lm9uW2QudHlwZV0pO3RyeXtmb3IodmFyIGg9ZnVuY3Rpb24odCl7dmFyIG49XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3IsZT1uJiZ0W25dLHI9MDtpZihlKXJldHVybiBlLmNhbGwodCk7aWYodCYmXCJudW1iZXJcIj09dHlwZW9mIHQubGVuZ3RoKXJldHVybntuZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIHQmJnI+PXQubGVuZ3RoJiYodD12b2lkIDApLHt2YWx1ZTp0JiZ0W3IrK10sZG9uZTohdH19fTt0aHJvdyBuZXcgVHlwZUVycm9yKG4/XCJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLlwiOlwiU3ltYm9sLml0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKX0obSksYj1oLm5leHQoKTshYi5kb25lO2I9aC5uZXh0KCkpe3ZhciBTPWIudmFsdWU7aWYodm9pZCAwPT09UylyZXR1cm4gYyhwLGcpO3ZhciB3PVwic3RyaW5nXCI9PXR5cGVvZiBTP3t0YXJnZXQ6U306UyxqPXcudGFyZ2V0LEU9dy5hY3Rpb25zLFI9dm9pZCAwPT09RT9bXTpFLE49dy5jb25kLE89dm9pZCAwPT09Tj9mdW5jdGlvbigpe3JldHVybiEwfTpOLF89dm9pZCAwPT09aixrPW51bGwhPWo/ajpwLFQ9bi5zdGF0ZXNba107aWYoTyhnLGQpKXt2YXIgcT10KGYoKF8/cihSKTpbXS5jb25jYXQoeC5leGl0LFIsVC5lbnRyeSkuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdH0pKSkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gaSh0LHkuX29wdGlvbnMuYWN0aW9ucyl9KSksZyxkKSwzKSx6PXFbMF0sQT1xWzFdLEI9cVsyXSxDPW51bGwhPWo/ajpwO3JldHVybnt2YWx1ZTpDLGNvbnRleHQ6QSxhY3Rpb25zOnosY2hhbmdlZDpqIT09cHx8ei5sZW5ndGg+MHx8QixtYXRjaGVzOmEoQyl9fX19Y2F0Y2godCl7cz17ZXJyb3I6dH19ZmluYWxseXt0cnl7YiYmIWIuZG9uZSYmKGw9aC5yZXR1cm4pJiZsLmNhbGwoaCl9ZmluYWxseXtpZihzKXRocm93IHMuZXJyb3J9fX1yZXR1cm4gYyhwLGcpfX07cmV0dXJuIHl9dmFyIGw9ZnVuY3Rpb24odCxuKXtyZXR1cm4gdC5hY3Rpb25zLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciByPWUuZXhlYztyZXR1cm4gciYmcih0LmNvbnRleHQsbil9KSl9O2Z1bmN0aW9uIHYodCl7dmFyIHI9dC5pbml0aWFsU3RhdGUsbz1uLk5vdFN0YXJ0ZWQsaT1uZXcgU2V0LGM9e19tYWNoaW5lOnQsc2VuZDpmdW5jdGlvbihlKXtvPT09bi5SdW5uaW5nJiYocj10LnRyYW5zaXRpb24ocixlKSxsKHIsdShlKSksaS5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gdChyKX0pKSl9LHN1YnNjcmliZTpmdW5jdGlvbih0KXtyZXR1cm4gaS5hZGQodCksdChyKSx7dW5zdWJzY3JpYmU6ZnVuY3Rpb24oKXtyZXR1cm4gaS5kZWxldGUodCl9fX0sc3RhcnQ6ZnVuY3Rpb24oaSl7aWYoaSl7dmFyIHU9XCJvYmplY3RcIj09dHlwZW9mIGk/aTp7Y29udGV4dDp0LmNvbmZpZy5jb250ZXh0LHZhbHVlOml9O3I9e3ZhbHVlOnUudmFsdWUsYWN0aW9uczpbXSxjb250ZXh0OnUuY29udGV4dCxtYXRjaGVzOmEodS52YWx1ZSl9fXJldHVybiBvPW4uUnVubmluZyxsKHIsZSksY30sc3RvcDpmdW5jdGlvbigpe3JldHVybiBvPW4uU3RvcHBlZCxpLmNsZWFyKCksY30sZ2V0IHN0YXRlKCl7cmV0dXJuIHJ9LGdldCBzdGF0dXMoKXtyZXR1cm4gb319O3JldHVybiBjfWV4cG9ydHtuIGFzIEludGVycHJldGVyU3RhdHVzLG8gYXMgYXNzaWduLHMgYXMgY3JlYXRlTWFjaGluZSx2IGFzIGludGVycHJldH07XG4iXX0= -//------QC-SOURCE-SPLIT------ + var xt = function xt(t) { + return { + type: Z, + sendId: t + }; + }; - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/OP15/script/defaultData.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, 'c41b05RVddEPK86siw92bnl', 'defaultData'); -// OP15/script/defaultData.js + function wt(e) { + var n = pt(e); + return { + type: t.ActionTypes.Start, + activity: n, + exec: void 0 + }; + } -"use strict"; + function bt(e) { + var n = N(e) ? e : pt(e); + return { + type: t.ActionTypes.Stop, + activity: n, + exec: void 0 + }; + } -exports.__esModule = true; -exports.defaultData = void 0; -var defaultData = { - // "begin_audio": "http://staging-teach.cdn.ireadabc.com/b1e5378083adac9950839772c7b67f34.mp3", - "begin_audio": "http://staging-teach.cdn.ireadabc.com/81e7a94e1420a4cbcaa583d4188ab145.mp3", - "playing_audio": "http://teach.cdn.ireadabc.com/549347d1be620d9d91b7420d45b3cb7a.mp3", - "end_audio": "http://staging-teach.cdn.ireadabc.com/81e7a94e1420a4cbcaa583d4188ab145.mp3", - "bgItem": { - "url": "http://teach.cdn.ireadabc.com/adcccbd26e2cfa259920e24df01d4b92.png", - "rect": { - "x": 374.6, - "y": 0, - "width": 293.8, - "height": 390 - } - }, - "hotZoneItemArr": [{ - "id": "1638090450402", - "index": 0, - "itemType": "rect", - "fontScale": 0.81484375, - "imgScale": 1, - "imgSizeW": 0, - "imgSizeH": 0, - "mapScale": 0.81484375, - "skeJsonData": { - "url": "http://teach.cdn.ireadabc.com/c5c6cd890660a3c22fde393a3770458f.json", - "name": "å°æ±½è½¦_ske.json" - }, - "texJsonData": { - "url": "http://teach.cdn.ireadabc.com/cea107517406463474d907e306163226.json", - "name": "å°æ±½è½¦_tex.json" - }, - "texPngData": { - "url": "http://teach.cdn.ireadabc.com/84bce64cd4259e604a458d08ddd75bec.png", - "name": "å°æ±½è½¦_tex.png" - }, - "dragDot": { - "x": 521.5, - "y": 195 - }, - "gIdx": "1", - "rect": { - "x": 46.9, - "y": 95, - "width": 200, - "height": 200 - } - }, { - "id": "1638090465133", - "index": 1, - "pic_url": "http://teach.cdn.ireadabc.com/70d02ee3788e373f707a45530cd2f9c0.png", - "itemType": "pic", - "fontScale": 0.81484375, - "imgScale": 0.23579201934703747, - "imgSizeW": 1246, - "imgSizeH": 1654, - "mapScale": 0.81484375, - "dragDot": { - "x": 521.5, - "y": 195 - }, - "gIdx": "2", - "rect": { - "x": 0, - "y": 1, - "width": 293.8, - "height": 390 + var _t = function _t(t) { + return { + type: et, + assignment: t + }; + }; + + function Et(e, n) { + var r = n ? "#".concat(n) : ""; + return "".concat(t.ActionTypes.After, "(").concat(e, ")").concat(r); + } + + function Tt(e, n) { + var r = "".concat(t.ActionTypes.DoneState, ".").concat(e), + i = { + type: r, + data: n, + toString: function toString() { + return r; + } + }; + return i; + } + + function Nt(e, n) { + var r = "".concat(t.ActionTypes.DoneInvoke, ".").concat(e), + i = { + type: r, + data: n, + toString: function toString() { + return r; + } + }; + return i; + } + + function At(e, n) { + var r = "".concat(t.ActionTypes.ErrorPlatform, ".").concat(e), + i = { + type: r, + data: n, + toString: function toString() { + return r; + } + }; + return i; + } + + function Ot(t, n) { + return yt(function (t, e) { + return e; + }, _e(_e({}, n), { + to: t + })); + } + + function Pt(n, r, a, s, c, u) { + void 0 === u && (u = !1); + var h = i(u ? [[], c] : b(c, function (t) { + return t.type === et; + }), 2), + f = h[0], + l = h[1], + d = f.length ? E(a, s, f, r) : a, + p = u ? [a] : void 0; + return [g(l.map(function (a) { + var c; + + switch (a.type) { + case W: + return { + type: W, + _event: L(a.event) + }; + + case Y: + return function (t, n, r, i) { + var o, + a = { + _event: r + }, + s = L(N(t.event) ? t.event(n, r.data, a) : t.event); + + if (A(t.delay)) { + var c = i && i[t.delay]; + o = N(c) ? c(n, r.data, a) : c; + } else o = N(t.delay) ? t.delay(n, r.data, a) : t.delay; + + var u = N(t.to) ? t.to(n, r.data, a) : t.to; + return _e(_e({}, t), { + to: u, + _event: s, + event: s.data, + delay: o + }); + }(a, d, s, n.options.delays); + + case nt: + return function (t, n, r) { + return _e(_e({}, t), { + value: A(t.expr) ? t.expr : t.expr(n, r.data, { + _event: r + }) + }); + }(a, d, s); + + case ct: + if (!(v = null === (c = a.conds.find(function (t) { + var e = O(t.cond, n.options.guards); + return !e || R(n, e, d, s, r); + })) || void 0 === c ? void 0 : c.actions)) return []; + var h = i(Pt(n, r, d, s, dt(S(v), n.options.actions), u), 2), + f = h[0], + l = h[1]; + return d = l, null == p || p.push(d), f; + + case ut: + var v; + if (!(v = a.get(d, s.data))) return []; + var y = i(Pt(n, r, d, s, dt(S(v), n.options.actions), u), 2), + g = y[0], + m = y[1]; + return d = m, null == p || p.push(d), g; + + case Q: + return function (e, n, r) { + var i = N(e.activity) ? e.activity(n, r.data) : e.activity, + o = "string" == typeof i ? { + id: i + } : i; + return { + type: t.ActionTypes.Stop, + activity: o + }; + }(a, d, s); + + case et: + d = E(d, s, [a], r), null == p || p.push(d); + break; + + default: + var x = lt(a, n.options.actions), + w = x.exec; + + if (w && p) { + var b = p.length - 1; + x = _e(_e({}, x), { + exec: function exec(t) { + for (var e = [], n = 1; n < arguments.length; n++) { + e[n - 1] = arguments[n]; + } + + w.apply(void 0, o([p[b]], i(e), !1)); + } + }); + } + + return x; + } + }).filter(function (t) { + return !!t; + })), d]; + } + + var kt = function () { + function t(t) { + var e, + n, + r = this; + this.actions = [], this.activities = a, this.meta = {}, this.events = [], this.value = t.value, this.context = t.context, this._event = t._event, this._sessionid = t._sessionid, this.event = this._event.data, this.historyValue = t.historyValue, this.history = t.history, this.actions = t.actions || [], this.activities = t.activities || a, this.meta = (void 0 === (n = t.configuration) && (n = []), n.reduce(function (t, e) { + return void 0 !== e.meta && (t[e.id] = e.meta), t; + }, {})), this.events = t.events || [], this.matches = this.matches.bind(this), this.toStrings = this.toStrings.bind(this), this.configuration = t.configuration, this.transitions = t.transitions, this.children = t.children, this.done = !!t.done, this.tags = null !== (e = Array.isArray(t.tags) ? new Set(t.tags) : t.tags) && void 0 !== e ? e : new Set(), this.machine = t.machine, Object.defineProperty(this, "nextEvents", { + get: function get() { + return function (t) { + return o([], i(new Set(g(o([], i(t.map(function (t) { + return t.ownEvents; + })), !1)))), !1); + }(r.configuration); + } + }); } - }, { - "id": "1638090485031", - "index": 2, - "audio_url": "http://teach.cdn.ireadabc.com/e31c3b1914837a611d4d3bb1ceb00773.mp3", - "itemType": "rect", - "fontScale": 0.81484375, - "imgScale": 1, - "imgSizeW": 0, - "imgSizeH": 0, - "mapScale": 0.81484375, - "skeJsonData": { - "url": "http://teach.cdn.ireadabc.com/d2d7de9f8079f36e8354d16e4ca26476.json", - "name": "房å_ske.json" - }, - "texJsonData": { - "url": "http://teach.cdn.ireadabc.com/204ea18018a352a30fd233a46f9a0a1a.json", - "name": "房å_tex.json" - }, - "texPngData": { - "url": "http://teach.cdn.ireadabc.com/cf8da0ab00a7d9f34bdf8f490c29dcbf.png", - "name": "房å_tex.png" - }, - "dragDot": { - "x": 521.5, - "y": 195 - }, - "gIdx": "0", - "labelText": "14", - "posX": 578, - "posY": 160.99791334496155, - "rect": { - "x": 124.9, - "y": 108, - "width": 170, - "height": 106 - } - }, { - "id": "1638090539787", - "index": 3, - "itemType": "rect", - "fontScale": 0.81484375, - "imgScale": 1, - "imgSizeW": 0, - "imgSizeH": 0, - "mapScale": 0.81484375, - "skeJsonData": { - "url": "http://teach.cdn.ireadabc.com/ed2ac4931a9c00ff6c4298381722676e.json", - "name": "牛_ske.json" - }, - "texJsonData": { - "url": "http://teach.cdn.ireadabc.com/0e153093ee7265b6a843847543d6110b.json", - "name": "牛_tex.json" - }, - "texPngData": { - "url": "http://teach.cdn.ireadabc.com/631661e13616eea6cde9f9e6610f5008.png", - "name": "牛_tex.png" - }, - "dragDot": { - "x": 521.5, - "y": 197.46116504854368 - }, - "gIdx": "1", - "rect": { - "x": 46.9, - "y": 95, - "width": 200, - "height": 200 - } - }, { - "id": "1638090562867", - "index": 4, - "audio_url": "http://teach.cdn.ireadabc.com/bf1924c502ca1a4ac928a31e7c8aa70e.mp3", - "itemType": "rect", - "fontScale": 0.81484375, - "imgScale": 1, - "imgSizeW": 0, - "imgSizeH": 0, - "mapScale": 0.81484375, - "skeJsonData": { - "url": "http://teach.cdn.ireadabc.com/bd3c2cc93b1593433a58d8482972ff66.json", - "name": "苹果_ske.json" - }, - "texJsonData": { - "url": "http://teach.cdn.ireadabc.com/1f54df317a8c86271e29d6db3ffb55ce.json", - "name": "苹果_tex.json" - }, - "texPngData": { - "url": "http://teach.cdn.ireadabc.com/734ac06a7ef018b457e7ac7692789ffa.png", - "name": "苹果_tex.png" - }, - "dragDot": { - "x": 521.5, - "y": 197.46116504854368 - }, - "gIdx": "0", - "labelText": "6", - "posX": 429, - "posY": 146, - "rect": { - "x": -0.1, - "y": 70, - "width": 122, - "height": 152 + + return t.from = function (e, n) { + return e instanceof t ? e.context !== n ? new t({ + value: e.value, + context: n, + _event: e._event, + _sessionid: null, + historyValue: e.historyValue, + history: e.history, + actions: [], + activities: e.activities, + meta: {}, + events: [], + configuration: [], + transitions: [], + children: {} + }) : e : new t({ + value: e, + context: n, + _event: ht, + _sessionid: null, + historyValue: void 0, + history: void 0, + actions: [], + activities: void 0, + meta: void 0, + events: [], + configuration: [], + transitions: [], + children: {} + }); + }, t.create = function (e) { + return new t(e); + }, t.inert = function (e, n) { + if (e instanceof t) { + if (!e.actions.length) return e; + var r = ht; + return new t({ + value: e.value, + context: n, + _event: r, + _sessionid: null, + historyValue: e.historyValue, + history: e.history, + activities: e.activities, + configuration: e.configuration, + transitions: [], + children: {} + }); + } + + return t.from(e, n); + }, t.prototype.toStrings = function (t, e) { + var n = this; + if (void 0 === t && (t = this.value), void 0 === e && (e = "."), A(t)) return [t]; + var r = s(t); + return r.concat.apply(r, o([], i(r.map(function (r) { + return n.toStrings(t[r], e).map(function (t) { + return r + e + t; + }); + })), !1)); + }, t.prototype.toJSON = function () { + var t = this, + r = (t.configuration, t.transitions, t.tags), + i = (t.machine, n(t, ["configuration", "transitions", "tags", "machine"])); + return _e(_e({}, i), { + tags: Array.from(r) + }); + }, t.prototype.matches = function (t) { + return c(t, this.value); + }, t.prototype.hasTag = function (t) { + return this.tags.has(t); + }, t.prototype.can = function (t) { + var e; + return this.machine, !!(null === (e = this.machine) || void 0 === e ? void 0 : e.transition(this, t).changed); + }, t; + }(), + It = [], + jt = function jt(t, e) { + It.push(t); + var n = e(t); + return It.pop(), n; + }; + + function Ct(t) { + return { + id: t, + send: function send() {}, + subscribe: function subscribe() { + return { + unsubscribe: function unsubscribe() {} + }; + }, + getSnapshot: function getSnapshot() {}, + toJSON: function toJSON() { + return { + id: t + }; + } + }; + } + + function Vt(t, e, n) { + var r = Ct(e); + + if (r.deferred = !0, k(t)) { + var i = r.state = jt(void 0, function () { + return (n ? t.withContext(n) : t).initialState; + }); + + r.getSnapshot = function () { + return i; + }; } - }, { - "id": "1638090594247", - "index": 5, - "itemType": "rect", - "fontScale": 0.81484375, - "imgScale": 1, - "imgSizeW": 0, - "imgSizeH": 0, - "mapScale": 0.81484375, - "skeJsonData": { - "url": "http://teach.cdn.ireadabc.com/1d4b251caf0c0b8245fb17cd8445672c.json", - "name": "农夫_ske.json" - }, - "texJsonData": { - "url": "http://teach.cdn.ireadabc.com/1fdd04cacb6d543cf05ce64e8124a6ff.json", - "name": "农夫_tex.json" - }, - "texPngData": { - "url": "http://teach.cdn.ireadabc.com/8f582cb39eb349da08e06289b0ce6c16.png", - "name": "农夫_tex.png" - }, - "dragDot": { - "x": 521.5, - "y": 197.46116504854368 - }, - "gIdx": "1", - "rect": { - "x": 46.9, - "y": 95, - "width": 200, - "height": 200 + + return r; + } + + function Lt(t) { + if ("string" == typeof t) { + var e = { + type: t, + toString: function toString() { + return t; + } + }; + return e; } - }, { - "id": "1638090663056", - "index": 6, - "itemType": "rect", - "fontScale": 0.81484375, - "imgScale": 1, - "imgSizeW": 0, - "imgSizeH": 0, - "mapScale": 0.81484375, - "skeJsonData": { - "url": "http://teach.cdn.ireadabc.com/4503721901880d0b6c3ad6d4261e958b.json", - "name": "å°å¥³å©_ske.json" - }, - "texJsonData": { - "url": "http://teach.cdn.ireadabc.com/fc4fd0b2f672dff7c7b2148830164090.json", - "name": "å°å¥³å©_tex.json" - }, - "texPngData": { - "url": "http://teach.cdn.ireadabc.com/4be41c15972caf99eef956ba48759c91.png", - "name": "å°å¥³å©_tex.png" - }, - "dragDot": { - "x": 521.5, - "y": 197.46116504854368 - }, - "gIdx": "1", - "rect": { - "x": 46.9, - "y": 95, - "width": 200, - "height": 200 - } - }, { - "id": "1638090685571", - "index": 7, - "itemType": "rect", - "fontScale": 0.81484375, - "imgScale": 1, - "imgSizeW": 0, - "imgSizeH": 0, - "mapScale": 0.81484375, - "skeJsonData": { - "url": "http://teach.cdn.ireadabc.com/55951c794b414ab58cca023642819e37.json", - "name": "æ¯é¸¡_ske.json" - }, - "texJsonData": { - "url": "http://teach.cdn.ireadabc.com/47b93323b1d1e1e6020704c537f46820.json", - "name": "æ¯é¸¡_tex.json" - }, - "texPngData": { - "url": "http://teach.cdn.ireadabc.com/dd66021ff860b02a559d59817c71e27f.png", - "name": "æ¯é¸¡_tex.png" - }, - "dragDot": { - "x": 521.5, - "y": 197.46116504854368 - }, - "gIdx": "1", - "rect": { - "x": 46.9, - "y": 95, - "width": 200, - "height": 200 - } - }, { - "id": "1638090695652", - "index": 8, - "audio_url": "http://teach.cdn.ireadabc.com/323feb19d153069702ffd21097f18f79.mp3", - "itemType": "rect", - "fontScale": 0.81484375, - "imgScale": 1, - "imgSizeW": 0, - "imgSizeH": 0, - "mapScale": 0.81484375, - "skeJsonData": { - "url": "http://teach.cdn.ireadabc.com/cd7c7a756c0f79d28f419576e3b85b0c.json", - "name": "é¸å_ske.json" - }, - "texJsonData": { - "url": "http://teach.cdn.ireadabc.com/7613f30893a5f64773a77723c1d67f0d.json", - "name": "é¸å_tex.json" - }, - "texPngData": { - "url": "http://teach.cdn.ireadabc.com/59b2293ef4eea9d64ff9821bc5d69a6d.png", - "name": "é¸å_tex.png" - }, - "dragDot": { - "x": 521.5, - "y": 197.46116504854368 - }, - "gIdx": "0", - "labelText": "11", - "posX": 564.4993151491155, - "posY": 247.99735690361797, - "rect": { - "x": 127.9, - "y": 216, - "width": 124, - "height": 64 - } - }, { - "id": "1638090758159", - "index": 9, - "audio_url": "http://teach.cdn.ireadabc.com/b903b174f09107517b5d6f8934b73447.mp3", - "itemType": "rect", - "fontScale": 0.81484375, - "imgScale": 1, - "imgSizeW": 0, - "imgSizeH": 0, - "mapScale": 0.81484375, - "skeJsonData": { - "url": "http://teach.cdn.ireadabc.com/b9fa85c227daa6539f12cab5a5058052.json", - "name": "鸡蛋_ske.json" - }, - "texJsonData": { - "url": "http://teach.cdn.ireadabc.com/99aa8de7b69000ac6c5e0fb6a508b692.json", - "name": "鸡蛋_tex.json" - }, - "texPngData": { - "url": "http://teach.cdn.ireadabc.com/09bd0a34a4508613fd7c167724e4a969.png", - "name": "鸡蛋_tex.png" - }, - "dragDot": { - "x": 521.5, - "y": 197.46116504854368 - }, - "gIdx": "0", - "labelText": "7", - "posX": 471.50036382703234, - "posY": 291.99683256465954, - "rect": { - "x": 67.4, - "y": 223, - "width": 59, - "height": 138 + + return t; + } + + function Dt(t) { + return _e(_e({ + type: it + }, t), { + toJSON: function toJSON() { + t.onDone, t.onError; + var r = n(t, ["onDone", "onError"]); + return _e(_e({}, r), { + type: it, + src: Lt(t.src) + }); + } + }); + } + + var Rt = {}, + Mt = function Mt(t) { + return "#" === t[0]; + }, + zt = function () { + function a(t, n, c) { + var u, + h = this; + void 0 === c && (c = "context" in t ? t.context : void 0), this.config = t, this._context = c, this.order = -1, this.__xstatenode = !0, this.__cache = { + events: void 0, + relativeValue: new Map(), + initialStateValue: void 0, + initialState: void 0, + on: void 0, + transitions: void 0, + candidates: {}, + delayedTransitions: void 0 + }, this.idMap = {}, this.tags = [], this.options = Object.assign({ + actions: {}, + guards: {}, + services: {}, + activities: {}, + delays: {} + }, n), this.parent = this.options._parent, this.key = this.config.key || this.options._key || this.config.id || "(machine)", this.machine = this.parent ? this.parent.machine : this, this.path = this.parent ? this.parent.path.concat(this.key) : [], this.delimiter = this.config.delimiter || (this.parent ? this.parent.delimiter : "."), this.id = this.config.id || o([this.machine.key], i(this.path), !1).join(this.delimiter), this.version = this.parent ? this.parent.version : this.config.version, this.type = this.config.type || (this.config.parallel ? "parallel" : this.config.states && s(this.config.states).length ? "compound" : this.config.history ? "history" : "atomic"), this.schema = this.parent ? this.machine.schema : null !== (u = this.config.schema) && void 0 !== u ? u : {}, this.description = this.config.description, this.initial = this.config.initial, this.states = this.config.states ? d(this.config.states, function (t, n) { + var r, + i = new a(t, { + _parent: h, + _key: n + }); + return Object.assign(h.idMap, _e(((r = {})[i.id] = i, r), i.idMap)), i; + }) : Rt; + var f = 0; + !function t(e) { + var n, i; + e.order = f++; + + try { + for (var o = r(U(e)), a = o.next(); !a.done; a = o.next()) { + t(a.value); + } + } catch (t) { + n = { + error: t + }; + } finally { + try { + a && !a.done && (i = o["return"]) && i.call(o); + } finally { + if (n) throw n.error; + } + } + }(this), this.history = !0 === this.config.history ? "shallow" : this.config.history || !1, this._transient = !!this.config.always || !!this.config.on && (Array.isArray(this.config.on) ? this.config.on.some(function (t) { + return "" === t.event; + }) : "" in this.config.on), this.strict = !!this.config.strict, this.onEntry = S(this.config.entry || this.config.onEntry).map(function (t) { + return lt(t); + }), this.onExit = S(this.config.exit || this.config.onExit).map(function (t) { + return lt(t); + }), this.meta = this.config.meta, this.doneData = "final" === this.type ? this.config.data : void 0, this.invoke = S(this.config.invoke).map(function (t, n) { + var r, i; + if (k(t)) return h.machine.options.services = _e(((r = {})[t.id] = t, r), h.machine.options.services), Dt({ + src: t.id, + id: t.id + }); + if (A(t.src)) return Dt(_e(_e({}, t), { + id: t.id || t.src, + src: t.src + })); + + if (k(t.src) || N(t.src)) { + var o = "".concat(h.id, ":invocation[").concat(n, "]"); + return h.machine.options.services = _e(((i = {})[o] = t.src, i), h.machine.options.services), Dt(_e(_e({ + id: o + }, t), { + src: o + })); + } + + var a = t.src; + return Dt(_e(_e({ + id: a.type + }, t), { + src: a + })); + }), this.activities = S(this.config.activities).concat(this.invoke).map(function (t) { + return pt(t); + }), this.transition = this.transition.bind(this), this.tags = S(this.config.tags); } - }, { - "id": "1638090812155", - "index": 10, - "itemType": "rect", - "fontScale": 0.81484375, - "imgScale": 1, - "imgSizeW": 0, - "imgSizeH": 0, - "mapScale": 0.81484375, - "skeJsonData": { - "url": "http://teach.cdn.ireadabc.com/357fef8204228afb43d0ce73746228e5.json", - "name": "é±¼_ske.json" - }, - "texJsonData": { - "url": "http://teach.cdn.ireadabc.com/f694e5442095a317fc7d8b1390e630c7.json", - "name": "é±¼_tex.json" - }, - "texPngData": { - "url": "http://teach.cdn.ireadabc.com/f566cca10fd83f62a465b144ac73d483.png", - "name": "é±¼_tex.png" - }, - "dragDot": { - "x": 521.5, - "y": 197.46116504854368 - }, - "gIdx": "1", - "rect": { - "x": 46.9, - "y": 95, - "width": 200, - "height": 200 - } - }, { - "id": "1638090824244", - "index": 11, - "audio_url": "http://teach.cdn.ireadabc.com/2656b72aec7f6def07713fbc99309168.mp3", - "itemType": "rect", - "fontScale": 0.81484375, - "imgScale": 1, - "imgSizeW": 0, - "imgSizeH": 0, - "mapScale": 0.81484375, - "skeJsonData": { - "url": "http://teach.cdn.ireadabc.com/20cbf3d186a197baaed38204dd017f51.json", - "name": "猫_ske.json" - }, - "texJsonData": { - "url": "http://teach.cdn.ireadabc.com/d7de5a32de3ee1ad660dc509ba8adf1d.json", - "name": "猫_tex.json" - }, - "texPngData": { - "url": "http://teach.cdn.ireadabc.com/af86e967aab8632cd0b26d60a62f0675.png", - "name": "猫_tex.png" - }, - "dragDot": { - "x": 521.5, - "y": 197.46116504854368 - }, - "gIdx": "0", - "labelText": "10", - "posX": 408.50114498507236, - "posY": 288.99689676943, - "rect": { - "x": 1.4, - "y": 222, - "width": 65, - "height": 134 - } - }, { - "id": "1638090897644", - "index": 12, - "audio_url": "http://teach.cdn.ireadabc.com/9bbf8ba2fa7f96ea5a95c27a384414a2.mp3", - "itemType": "rect", - "fontScale": 0.81484375, - "imgScale": 1, - "imgSizeW": 0, - "imgSizeH": 0, - "mapScale": 0.81484375, - "skeJsonData": { - "url": "http://teach.cdn.ireadabc.com/d8506ebddb29c8d08b4b93376b45f5c9.json", - "name": "鸟_ske.json" - }, - "texJsonData": { - "url": "http://teach.cdn.ireadabc.com/9fad47c99025b7b229df52afb797ec5c.json", - "name": "鸟_tex.json" - }, - "texPngData": { - "url": "http://teach.cdn.ireadabc.com/e86b136b9706768c5ca0dba3dc0aab21.png", - "name": "鸟_tex.png" - }, - "dragDot": { - "x": 521.5, - "y": 197.46116504854368 - }, - "gIdx": "0", - "labelText": "9", - "posX": 573, - "posY": 74, - "rect": { - "x": 127.9, - "y": 41, - "width": 154, - "height": 66 - } - }, { - "id": "1638090948950", - "index": 13, - "itemType": "rect", - "fontScale": 0.81484375, - "imgScale": 1, - "imgSizeW": 0, - "imgSizeH": 0, - "mapScale": 0.81484375, - "skeJsonData": { - "url": "http://teach.cdn.ireadabc.com/3d1d49e583d97cd5097d08102265b1c6.json", - "name": "èš‚èš_ske.json" - }, - "texJsonData": { - "url": "http://teach.cdn.ireadabc.com/9a3a5c871b288aebb1e6920f1e9709f8.json", - "name": "èš‚èš_tex.json" - }, - "texPngData": { - "url": "http://teach.cdn.ireadabc.com/1fad62f313b6ff72a642cb4b15aeaf04.png", - "name": "èš‚èš_tex.png" - }, - "dragDot": { - "x": 521.5, - "y": 197.46116504854368 - }, - "gIdx": "1", - "rect": { - "x": 46.9, - "y": 95, - "width": 200, - "height": 200 - } - }], - "guide_audio": "http://staging-teach.cdn.ireadabc.com/d6c1d3b84a4774a0fc183a14abbb6c09.mp3", - "wrong_audio1": "http://staging-teach.cdn.ireadabc.com/b77ef2a6cdcb6504520484a9b197b2fd.mp3", - "wrong_audio2": "http://staging-teach.cdn.ireadabc.com/8dacb2445816e1f068ea116752c21173.mp3", - "begin_audio1": "http://staging-teach.cdn.ireadabc.com/e45ad0823ae2c8e04246d76c7f57030d.mp3", - "begin_audio2": "http://staging-teach.cdn.ireadabc.com/05232ad51f8d9e1af6dd1273147bc58f.mp3", - "right_audio": "http://staging-teach.cdn.ireadabc.com/330eff8d5e8cc429965da82652207ff2.mp3", - "wrong_audio": "http://staging-teach.cdn.ireadabc.com/1664170e569d974279bcec626be176d9.mp3", - "begin_sep_time": 15 -}; -exports.defaultData = defaultData; - -cc._RF.pop(); - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0cy9PUDE1L3NjcmlwdC9kZWZhdWx0RGF0YS5qcyJdLCJuYW1lcyI6WyJkZWZhdWx0RGF0YSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFPLElBQU1BLFdBQVcsR0FBRztBQUN2QjtBQUNBLGlCQUFlLDRFQUZRO0FBR3ZCLG1CQUFpQixvRUFITTtBQUl2QixlQUFhLDRFQUpVO0FBS3ZCLFlBQVU7QUFDTixXQUFPLG9FQUREO0FBRU4sWUFBUTtBQUNKLFdBQUssS0FERDtBQUVKLFdBQUssQ0FGRDtBQUdKLGVBQVMsS0FITDtBQUlKLGdCQUFVO0FBSk47QUFGRixHQUxhO0FBY3ZCLG9CQUFrQixDQUFDO0FBQ2YsVUFBTSxlQURTO0FBRWYsYUFBUyxDQUZNO0FBR2YsZ0JBQVksTUFIRztBQUlmLGlCQUFhLFVBSkU7QUFLZixnQkFBWSxDQUxHO0FBTWYsZ0JBQVksQ0FORztBQU9mLGdCQUFZLENBUEc7QUFRZixnQkFBWSxVQVJHO0FBU2YsbUJBQWU7QUFDWCxhQUFPLHFFQURJO0FBRVgsY0FBUTtBQUZHLEtBVEE7QUFhZixtQkFBZTtBQUNYLGFBQU8scUVBREk7QUFFWCxjQUFRO0FBRkcsS0FiQTtBQWlCZixrQkFBYztBQUNWLGFBQU8sb0VBREc7QUFFVixjQUFRO0FBRkUsS0FqQkM7QUFxQmYsZUFBVztBQUNQLFdBQUssS0FERTtBQUVQLFdBQUs7QUFGRSxLQXJCSTtBQXlCZixZQUFRLEdBekJPO0FBMEJmLFlBQVE7QUFDSixXQUFLLElBREQ7QUFFSixXQUFLLEVBRkQ7QUFHSixlQUFTLEdBSEw7QUFJSixnQkFBVTtBQUpOO0FBMUJPLEdBQUQsRUFnQ2Y7QUFDQyxVQUFNLGVBRFA7QUFFQyxhQUFTLENBRlY7QUFHQyxlQUFXLG9FQUhaO0FBSUMsZ0JBQVksS0FKYjtBQUtDLGlCQUFhLFVBTGQ7QUFNQyxnQkFBWSxtQkFOYjtBQU9DLGdCQUFZLElBUGI7QUFRQyxnQkFBWSxJQVJiO0FBU0MsZ0JBQVksVUFUYjtBQVVDLGVBQVc7QUFD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RkcsS0FUaEI7QUFhQyxtQkFBZTtBQUNYLGFBQU8scUVBREk7QUFFWCxjQUFRO0FBRkcsS0FiaEI7QUFpQkMsa0JBQWM7QUFDVixhQUFPLG9FQURHO0FBRVYsY0FBUTtBQUZFLEtBakJmO0FBcUJDLGVBQVc7QUFDUCxXQUFLLEtBREU7QUFFUCxXQUFLO0FBRkUsS0FyQlo7QUF5QkMsWUFBUSxHQXpCVDtBQTBCQyxZQUFRO0FBQ0osV0FBSyxJQUREO0FBRUosV0FBSyxFQUZEO0FBR0osZUFBUyxHQUhMO0FBSUosZ0JBQVU7QUFKTjtBQTFCVCxHQTdhZSxDQWRLO0FBNGR2QixpQkFBZSw0RUE1ZFE7QUE2ZHZCLGtCQUFnQiw0RUE3ZE87QUE4ZHZCLGtCQUFnQiw0RUE5ZE87QUErZHZCLGtCQUFnQiw0RUEvZE87QUFnZXZCLGtCQUFnQiw0RUFoZU87QUFpZXZCLGlCQUFlLDRFQWplUTtBQWtldkIsaUJBQWUsNEVBbGVRO0FBbWV2QixvQkFBa0I7QUFuZUssQ0FBcEIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBkZWZhdWx0RGF0YSA9IHtcbiAgICAvLyBcImJlZ2luX2F1ZGlvXCI6IFwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9iMWU1Mzc4MDgzYWRhYzk5NTA4Mzk3NzJjN2I2N2YzNC5tcDNcIixcbiAgICBcImJlZ2luX2F1ZGlvXCI6IFwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS84MWU3YTk0ZTE0MjBhNGNiY2FhNTgzZDQxODhhYjE0NS5tcDNcIixcbiAgICBcInBsYXlpbmdfYXVkaW9cIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS81NDkzNDdkMWJlNjIwZDlkOTFiNzQyMGQ0NWIzY2I3YS5tcDNcIixcbiAgICBcImVuZF9hdWRpb1wiOiBcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vODFlN2E5NGUxNDIwYTRjYmNhYTU4M2Q0MTg4YWIxNDUubXAzXCIsXG4gICAgXCJiZ0l0ZW1cIjoge1xuICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2FkY2NjYmQyNmUyY2ZhMjU5OTIwZTI0ZGYwMWQ0YjkyLnBuZ1wiLFxuICAgICAgICBcInJlY3RcIjoge1xuICAgICAgICAgICAgXCJ4XCI6IDM3NC42LFxuICAgICAgICAgICAgXCJ5XCI6IDAsXG4gICAgICAgICAgICBcIndpZHRoXCI6IDI5My44LFxuICAgICAgICAgICAgXCJoZWlnaHRcIjogMzkwXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFwiaG90Wm9uZUl0ZW1BcnJcIjogW3tcbiAgICAgICAgXCJpZFwiOiBcIjE2MzgwOTA0NTA0MDJcIixcbiAgICAgICAgXCJpbmRleFwiOiAwLFxuICAgICAgICBcIml0ZW1UeXBlXCI6IFwicmVjdFwiLFxuICAgICAgICBcImZvbnRTY2FsZVwiOiAwLjgxNDg0Mzc1LFxuICAgICAgICBcImltZ1NjYWxlXCI6IDEsXG4gICAgICAgIFwiaW1nU2l6ZVdcIjogMCxcbiAgICAgICAgXCJpbWdTaXplSFwiOiAwLFxuICAgICAgICBcIm1hcFNjYWxlXCI6IDAuODE0ODQzNzUsXG4gICAgICAgIFwic2tlSnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9jNWM2Y2Q4OTA2NjBhM2MyMmZkZTM5M2EzNzcwNDU4Zi5qc29uXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLlsI/msb3ovaZfc2tlLmpzb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInRleEpzb25EYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vY2VhMTA3NTE3NDA2NDYzNDc0ZDkwN2UzMDYxNjMyMjYuanNvblwiLFxuICAgICAgICAgICAgXCJuYW1lXCI6IFwi5bCP5rG96L2mX3RleC5qc29uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0ZXhQbmdEYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vODRiY2U2NGNkNDI1OWU2MDRhNDU4ZDA4ZGRkNzViZWMucG5nXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLlsI/msb3ovaZfdGV4LnBuZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZHJhZ0RvdFwiOiB7XG4gICAgICAgICAgICBcInhcIjogNTIxLjUsXG4gICAgICAgICAgICBcInlcIjogMTk1XG4gICAgICAgIH0sXG4gICAgICAgIFwiZ0lkeFwiOiBcIjFcIixcbiAgICAgICAgXCJyZWN0XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiA0Ni45LFxuICAgICAgICAgICAgXCJ5XCI6IDk1LFxuICAgICAgICAgICAgXCJ3aWR0aFwiOiAyMDAsXG4gICAgICAgICAgICBcImhlaWdodFwiOiAyMDBcbiAgICAgICAgfVxuICAgIH0sIHtcbiAgICAgICAgXCJpZFwiOiBcIjE2MzgwOTA0NjUxMzNcIixcbiAgICAgICAgXCJpbmRleFwiOiAxLFxuICAgICAgICBcInBpY191cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS83MGQwMmVlMzc4OGUzNzNmNzA3YTQ1NTMwY2QyZjljMC5wbmdcIixcbiAgICAgICAgXCJpdGVtVHlwZVwiOiBcInBpY1wiLFxuICAgICAgICBcImZvbnRTY2FsZVwiOiAwLjgxNDg0Mzc1LFxuICAgICAgICBcImltZ1NjYWxlXCI6IDAuMjM1NzkyMDE5MzQ3MDM3NDcsXG4gICAgICAgIFwiaW1nU2l6ZVdcIjogMTI0NixcbiAgICAgICAgXCJpbWdTaXplSFwiOiAxNjU0LFxuICAgICAgICBcIm1hcFNjYWxlXCI6IDAuODE0ODQzNzUsXG4gICAgICAgIFwiZHJhZ0RvdFwiOiB7XG4gICAgICAgICAgICBcInhcIjogNTIxLjUsXG4gICAgICAgICAgICBcInlcIjogMTk1XG4gICAgICAgIH0sXG4gICAgICAgIFwiZ0lkeFwiOiBcIjJcIixcbiAgICAgICAgXCJyZWN0XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiAwLFxuICAgICAgICAgICAgXCJ5XCI6IDEsXG4gICAgICAgICAgICBcIndpZHRoXCI6IDI5My44LFxuICAgICAgICAgICAgXCJoZWlnaHRcIjogMzkwXG4gICAgICAgIH1cbiAgICB9LCB7XG4gICAgICAgIFwiaWRcIjogXCIxNjM4MDkwNDg1MDMxXCIsXG4gICAgICAgIFwiaW5kZXhcIjogMixcbiAgICAgICAgXCJhdWRpb191cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9lMzFjM2IxOTE0ODM3YTYxMWQ0ZDNiYjFjZWIwMDc3My5tcDNcIixcbiAgICAgICAgXCJpdGVtVHlwZVwiOiBcInJlY3RcIixcbiAgICAgICAgXCJmb250U2NhbGVcIjogMC44MTQ4NDM3NSxcbiAgICAgICAgXCJpbWdTY2FsZVwiOiAxLFxuICAgICAgICBcImltZ1NpemVXXCI6IDAsXG4gICAgICAgIFwiaW1nU2l6ZUhcIjogMCxcbiAgICAgICAgXCJtYXBTY2FsZVwiOiAwLjgxNDg0Mzc1LFxuICAgICAgICBcInNrZUpzb25EYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vZDJkN2RlOWY4MDc5ZjM2ZTgzNTRkMTZlNGNhMjY0NzYuanNvblwiLFxuICAgICAgICAgICAgXCJuYW1lXCI6IFwi5oi/5a2QX3NrZS5qc29uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0ZXhKc29uRGF0YVwiOiB7XG4gICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzIwNGVhMTgwMThhMzUyYTMwZmQyMzNhNDZmOWEwYTFhLmpzb25cIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIuaIv+WtkF90ZXguanNvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidGV4UG5nRGF0YVwiOiB7XG4gICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2NmOGRhMGFiMDBhN2Q5ZjM0YmRmOGY0OTBjMjlkY2JmLnBuZ1wiLFxuICAgICAgICAgICAgXCJuYW1lXCI6IFwi5oi/5a2QX3RleC5wbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcImRyYWdEb3RcIjoge1xuICAgICAgICAgICAgXCJ4XCI6IDUyMS41LFxuICAgICAgICAgICAgXCJ5XCI6IDE5NVxuICAgICAgICB9LFxuICAgICAgICBcImdJZHhcIjogXCIwXCIsXG4gICAgICAgIFwibGFiZWxUZXh0XCI6IFwiMTRcIixcbiAgICAgICAgXCJwb3NYXCI6IDU3OCxcbiAgICAgICAgXCJwb3NZXCI6IDE2MC45OTc5MTMzNDQ5NjE1NSxcbiAgICAgICAgXCJyZWN0XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiAxMjQuOSxcbiAgICAgICAgICAgIFwieVwiOiAxMDgsXG4gICAgICAgICAgICBcIndpZHRoXCI6IDE3MCxcbiAgICAgICAgICAgIFwiaGVpZ2h0XCI6IDEwNlxuICAgICAgICB9XG4gICAgfSwge1xuICAgICAgICBcImlkXCI6IFwiMTYzODA5MDUzOTc4N1wiLFxuICAgICAgICBcImluZGV4XCI6IDMsXG4gICAgICAgIFwiaXRlbVR5cGVcIjogXCJyZWN0XCIsXG4gICAgICAgIFwiZm9udFNjYWxlXCI6IDAuODE0ODQzNzUsXG4gICAgICAgIFwiaW1nU2NhbGVcIjogMSxcbiAgICAgICAgXCJpbWdTaXplV1wiOiAwLFxuICAgICAgICBcImltZ1NpemVIXCI6IDAsXG4gICAgICAgIFwibWFwU2NhbGVcIjogMC44MTQ4NDM3NSxcbiAgICAgICAgXCJza2VKc29uRGF0YVwiOiB7XG4gICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2VkMmFjNDkzMWE5YzAwZmY2YzQyOTgzODE3MjI2NzZlLmpzb25cIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIueJm19za2UuanNvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidGV4SnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8wZTE1MzA5M2VlNzI2NWI2YTg0Mzg0NzU0M2Q2MTEwYi5qc29uXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLniZtfdGV4Lmpzb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInRleFBuZ0RhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS82MzE2NjFlMTM2MTZlZWE2Y2RlOWY5ZTY2MTBmNTAwOC5wbmdcIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIueJm190ZXgucG5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkcmFnRG90XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiA1MjEuNSxcbiAgICAgICAgICAgIFwieVwiOiAxOTcuNDYxMTY1MDQ4NTQzNjhcbiAgICAgICAgfSxcbiAgICAgICAgXCJnSWR4XCI6IFwiMVwiLFxuICAgICAgICBcInJlY3RcIjoge1xuICAgICAgICAgICAgXCJ4XCI6IDQ2LjksXG4gICAgICAgICAgICBcInlcIjogOTUsXG4gICAgICAgICAgICBcIndpZHRoXCI6IDIwMCxcbiAgICAgICAgICAgIFwiaGVpZ2h0XCI6IDIwMFxuICAgICAgICB9XG4gICAgfSwge1xuICAgICAgICBcImlkXCI6IFwiMTYzODA5MDU2Mjg2N1wiLFxuICAgICAgICBcImluZGV4XCI6IDQsXG4gICAgICAgIFwiYXVkaW9fdXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vYmYxOTI0YzUwMmNhMWE0YWM5MjhhMzFlN2M4YWE3MGUubXAzXCIsXG4gICAgICAgIFwiaXRlbVR5cGVcIjogXCJyZWN0XCIsXG4gICAgICAgIFwiZm9udFNjYWxlXCI6IDAuODE0ODQzNzUsXG4gICAgICAgIFwiaW1nU2NhbGVcIjogMSxcbiAgICAgICAgXCJpbWdTaXplV1wiOiAwLFxuICAgICAgICBcImltZ1NpemVIXCI6IDAsXG4gICAgICAgIFwibWFwU2NhbGVcIjogMC44MTQ4NDM3NSxcbiAgICAgICAgXCJza2VKc29uRGF0YVwiOiB7XG4gICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2JkM2MyY2M5M2IxNTkzNDMzYTU4ZDg0ODI5NzJmZjY2Lmpzb25cIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIuiLueaenF9za2UuanNvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidGV4SnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8xZjU0ZGYzMTdhOGM4NjI3MWUyOWQ2ZGIzZmZiNTVjZS5qc29uXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLoi7nmnpxfdGV4Lmpzb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInRleFBuZ0RhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS83MzRhYzA2YTdlZjAxOGI0NTdlN2FjNzY5Mjc4OWZmYS5wbmdcIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIuiLueaenF90ZXgucG5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkcmFnRG90XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiA1MjEuNSxcbiAgICAgICAgICAgIFwieVwiOiAxOTcuNDYxMTY1MDQ4NTQzNjhcbiAgICAgICAgfSxcbiAgICAgICAgXCJnSWR4XCI6IFwiMFwiLFxuICAgICAgICBcImxhYmVsVGV4dFwiOiBcIjZcIixcbiAgICAgICAgXCJwb3NYXCI6IDQyOSxcbiAgICAgICAgXCJwb3NZXCI6IDE0NixcbiAgICAgICAgXCJyZWN0XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiAtMC4xLFxuICAgICAgICAgICAgXCJ5XCI6IDcwLFxuICAgICAgICAgICAgXCJ3aWR0aFwiOiAxMjIsXG4gICAgICAgICAgICBcImhlaWdodFwiOiAxNTJcbiAgICAgICAgfVxuICAgIH0sIHtcbiAgICAgICAgXCJpZFwiOiBcIjE2MzgwOTA1OTQyNDdcIixcbiAgICAgICAgXCJpbmRleFwiOiA1LFxuICAgICAgICBcIml0ZW1UeXBlXCI6IFwicmVjdFwiLFxuICAgICAgICBcImZvbnRTY2FsZVwiOiAwLjgxNDg0Mzc1LFxuICAgICAgICBcImltZ1NjYWxlXCI6IDEsXG4gICAgICAgIFwiaW1nU2l6ZVdcIjogMCxcbiAgICAgICAgXCJpbWdTaXplSFwiOiAwLFxuICAgICAgICBcIm1hcFNjYWxlXCI6IDAuODE0ODQzNzUsXG4gICAgICAgIFwic2tlSnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8xZDRiMjUxY2FmMGMwYjgyNDVmYjE3Y2Q4NDQ1NjcyYy5qc29uXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLlhpzlpKtfc2tlLmpzb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInRleEpzb25EYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vMWZkZDA0Y2FjYjZkNTQzY2YwNWNlNjRlODEyNGE2ZmYuanNvblwiLFxuICAgICAgICAgICAgXCJuYW1lXCI6IFwi5Yac5aSrX3RleC5qc29uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0ZXhQbmdEYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vOGY1ODJjYjM5ZWIzNDlkYTA4ZTA2Mjg5YjBjZTZjMTYucG5nXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLlhpzlpKtfdGV4LnBuZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZHJhZ0RvdFwiOiB7XG4gICAgICAgICAgICBcInhcIjogNTIxLjUsXG4gICAgICAgICAgICBcInlcIjogMTk3LjQ2MTE2NTA0ODU0MzY4XG4gICAgICAgIH0sXG4gICAgICAgIFwiZ0lkeFwiOiBcIjFcIixcbiAgICAgICAgXCJyZWN0XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiA0Ni45LFxuICAgICAgICAgICAgXCJ5XCI6IDk1LFxuICAgICAgICAgICAgXCJ3aWR0aFwiOiAyMDAsXG4gICAgICAgICAgICBcImhlaWdodFwiOiAyMDBcbiAgICAgICAgfVxuICAgIH0sIHtcbiAgICAgICAgXCJpZFwiOiBcIjE2MzgwOTA2NjMwNTZcIixcbiAgICAgICAgXCJpbmRleFwiOiA2LFxuICAgICAgICBcIml0ZW1UeXBlXCI6IFwicmVjdFwiLFxuICAgICAgICBcImZvbnRTY2FsZVwiOiAwLjgxNDg0Mzc1LFxuICAgICAgICBcImltZ1NjYWxlXCI6IDEsXG4gICAgICAgIFwiaW1nU2l6ZVdcIjogMCxcbiAgICAgICAgXCJpbWdTaXplSFwiOiAwLFxuICAgICAgICBcIm1hcFNjYWxlXCI6IDAuODE0ODQzNzUsXG4gICAgICAgIFwic2tlSnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS80NTAzNzIxOTAxODgwZDBiNmMzYWQ2ZDQyNjFlOTU4Yi5qc29uXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLlsI/lpbPlralfc2tlLmpzb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInRleEpzb25EYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vZmM0ZmQwYjJmNjcyZGZmN2M3YjIxNDg4MzAxNjQwOTAuanNvblwiLFxuICAgICAgICAgICAgXCJuYW1lXCI6IFwi5bCP5aWz5a2pX3RleC5qc29uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0ZXhQbmdEYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vNGJlNDFjMTU5NzJjYWY5OWVlZjk1NmJhNDg3NTljOTEucG5nXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLlsI/lpbPlralfdGV4LnBuZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZHJhZ0RvdFwiOiB7XG4gICAgICAgICAgICBcInhcIjogNTIxLjUsXG4gICAgICAgICAgICBcInlcIjogMTk3LjQ2MTE2NTA0ODU0MzY4XG4gICAgICAgIH0sXG4gICAgICAgIFwiZ0lkeFwiOiBcIjFcIixcbiAgICAgICAgXCJyZWN0XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiA0Ni45LFxuICAgICAgICAgICAgXCJ5XCI6IDk1LFxuICAgICAgICAgICAgXCJ3aWR0aFwiOiAyMDAsXG4gICAgICAgICAgICBcImhlaWdodFwiOiAyMDBcbiAgICAgICAgfVxuICAgIH0sIHtcbiAgICAgICAgXCJpZFwiOiBcIjE2MzgwOTA2ODU1NzFcIixcbiAgICAgICAgXCJpbmRleFwiOiA3LFxuICAgICAgICBcIml0ZW1UeXBlXCI6IFwicmVjdFwiLFxuICAgICAgICBcImZvbnRTY2FsZVwiOiAwLjgxNDg0Mzc1LFxuICAgICAgICBcImltZ1NjYWxlXCI6IDEsXG4gICAgICAgIFwiaW1nU2l6ZVdcIjogMCxcbiAgICAgICAgXCJpbWdTaXplSFwiOiAwLFxuICAgICAgICBcIm1hcFNjYWxlXCI6IDAuODE0ODQzNzUsXG4gICAgICAgIFwic2tlSnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS81NTk1MWM3OTRiNDE0YWI1OGNjYTAyMzY0MjgxOWUzNy5qc29uXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLmr43puKFfc2tlLmpzb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInRleEpzb25EYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vNDdiOTMzMjNiMWQxZTFlNjAyMDcwNGM1MzdmNDY4MjAuanNvblwiLFxuICAgICAgICAgICAgXCJuYW1lXCI6IFwi5q+N6bihX3RleC5qc29uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0ZXhQbmdEYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vZGQ2NjAyMWZmODYwYjAyYTU1OWQ1OTgxN2M3MWUyN2YucG5nXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLmr43puKFfdGV4LnBuZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZHJhZ0RvdFwiOiB7XG4gICAgICAgICAgICBcInhcIjogNTIxLjUsXG4gICAgICAgICAgICBcInlcIjogMTk3LjQ2MTE2NTA0ODU0MzY4XG4gICAgICAgIH0sXG4gICAgICAgIFwiZ0lkeFwiOiBcIjFcIixcbiAgICAgICAgXCJyZWN0XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiA0Ni45LFxuICAgICAgICAgICAgXCJ5XCI6IDk1LFxuICAgICAgICAgICAgXCJ3aWR0aFwiOiAyMDAsXG4gICAgICAgICAgICBcImhlaWdodFwiOiAyMDBcbiAgICAgICAgfVxuICAgIH0sIHtcbiAgICAgICAgXCJpZFwiOiBcIjE2MzgwOTA2OTU2NTJcIixcbiAgICAgICAgXCJpbmRleFwiOiA4LFxuICAgICAgICBcImF1ZGlvX3VybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzMyM2ZlYjE5ZDE1MzA2OTcwMmZmZDIxMDk3ZjE4Zjc5Lm1wM1wiLFxuICAgICAgICBcIml0ZW1UeXBlXCI6IFwicmVjdFwiLFxuICAgICAgICBcImZvbnRTY2FsZVwiOiAwLjgxNDg0Mzc1LFxuICAgICAgICBcImltZ1NjYWxlXCI6IDEsXG4gICAgICAgIFwiaW1nU2l6ZVdcIjogMCxcbiAgICAgICAgXCJpbWdTaXplSFwiOiAwLFxuICAgICAgICBcIm1hcFNjYWxlXCI6IDAuODE0ODQzNzUsXG4gICAgICAgIFwic2tlSnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9jZDdjN2E3NTZjMGY3OWQyOGY0MTk1NzZlM2I4NWIwYy5qc29uXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLpuK3lrZBfc2tlLmpzb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInRleEpzb25EYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vNzYxM2YzMDg5M2E1ZjY0NzczYTc3NzIzYzFkNjdmMGQuanNvblwiLFxuICAgICAgICAgICAgXCJuYW1lXCI6IFwi6bit5a2QX3RleC5qc29uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0ZXhQbmdEYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vNTliMjI5M2VmNGVlYTlkNjRmZjk4MjFiYzVkNjlhNmQucG5nXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLpuK3lrZBfdGV4LnBuZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZHJhZ0RvdFwiOiB7XG4gICAgICAgICAgICBcInhcIjogNTIxLjUsXG4gICAgICAgICAgICBcInlcIjogMTk3LjQ2MTE2NTA0ODU0MzY4XG4gICAgICAgIH0sXG4gICAgICAgIFwiZ0lkeFwiOiBcIjBcIixcbiAgICAgICAgXCJsYWJlbFRleHRcIjogXCIxMVwiLFxuICAgICAgICBcInBvc1hcIjogNTY0LjQ5OTMxNTE0OTExNTUsXG4gICAgICAgIFwicG9zWVwiOiAyNDcuOTk3MzU2OTAzNjE3OTcsXG4gICAgICAgIFwicmVjdFwiOiB7XG4gICAgICAgICAgICBcInhcIjogMTI3LjksXG4gICAgICAgICAgICBcInlcIjogMjE2LFxuICAgICAgICAgICAgXCJ3aWR0aFwiOiAxMjQsXG4gICAgICAgICAgICBcImhlaWdodFwiOiA2NFxuICAgICAgICB9XG4gICAgfSwge1xuICAgICAgICBcImlkXCI6IFwiMTYzODA5MDc1ODE1OVwiLFxuICAgICAgICBcImluZGV4XCI6IDksXG4gICAgICAgIFwiYXVkaW9fdXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vYjkwM2IxNzRmMDkxMDc1MTdiNWQ2Zjg5MzRiNzM0NDcubXAzXCIsXG4gICAgICAgIFwiaXRlbVR5cGVcIjogXCJyZWN0XCIsXG4gICAgICAgIFwiZm9udFNjYWxlXCI6IDAuODE0ODQzNzUsXG4gICAgICAgIFwiaW1nU2NhbGVcIjogMSxcbiAgICAgICAgXCJpbWdTaXplV1wiOiAwLFxuICAgICAgICBcImltZ1NpemVIXCI6IDAsXG4gICAgICAgIFwibWFwU2NhbGVcIjogMC44MTQ4NDM3NSxcbiAgICAgICAgXCJza2VKc29uRGF0YVwiOiB7XG4gICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2I5ZmE4NWMyMjdkYWE2NTM5ZjEyY2FiNWE1MDU4MDUyLmpzb25cIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIum4oeibi19za2UuanNvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidGV4SnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS85OWFhOGRlN2I2OTAwMGFjNmM1ZTBmYjZhNTA4YjY5Mi5qc29uXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLpuKHom4tfdGV4Lmpzb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInRleFBuZ0RhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8wOWJkMGEzNGE0NTA4NjEzZmQ3YzE2NzcyNGU0YTk2OS5wbmdcIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIum4oeibi190ZXgucG5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkcmFnRG90XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiA1MjEuNSxcbiAgICAgICAgICAgIFwieVwiOiAxOTcuNDYxMTY1MDQ4NTQzNjhcbiAgICAgICAgfSxcbiAgICAgICAgXCJnSWR4XCI6IFwiMFwiLFxuICAgICAgICBcImxhYmVsVGV4dFwiOiBcIjdcIixcbiAgICAgICAgXCJwb3NYXCI6IDQ3MS41MDAzNjM4MjcwMzIzNCxcbiAgICAgICAgXCJwb3NZXCI6IDI5MS45OTY4MzI1NjQ2NTk1NCxcbiAgICAgICAgXCJyZWN0XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiA2Ny40LFxuICAgICAgICAgICAgXCJ5XCI6IDIyMyxcbiAgICAgICAgICAgIFwid2lkdGhcIjogNTksXG4gICAgICAgICAgICBcImhlaWdodFwiOiAxMzhcbiAgICAgICAgfVxuICAgIH0sIHtcbiAgICAgICAgXCJpZFwiOiBcIjE2MzgwOTA4MTIxNTVcIixcbiAgICAgICAgXCJpbmRleFwiOiAxMCxcbiAgICAgICAgXCJpdGVtVHlwZVwiOiBcInJlY3RcIixcbiAgICAgICAgXCJmb250U2NhbGVcIjogMC44MTQ4NDM3NSxcbiAgICAgICAgXCJpbWdTY2FsZVwiOiAxLFxuICAgICAgICBcImltZ1NpemVXXCI6IDAsXG4gICAgICAgIFwiaW1nU2l6ZUhcIjogMCxcbiAgICAgICAgXCJtYXBTY2FsZVwiOiAwLjgxNDg0Mzc1LFxuICAgICAgICBcInNrZUpzb25EYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vMzU3ZmVmODIwNDIyOGFmYjQzZDBjZTczNzQ2MjI4ZTUuanNvblwiLFxuICAgICAgICAgICAgXCJuYW1lXCI6IFwi6bG8X3NrZS5qc29uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0ZXhKc29uRGF0YVwiOiB7XG4gICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2Y2OTRlNTQ0MjA5NWEzMTdmYzdkOGIxMzkwZTYzMGM3Lmpzb25cIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIumxvF90ZXguanNvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidGV4UG5nRGF0YVwiOiB7XG4gICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2Y1NjZjY2ExMGZkODNmNjJhNDY1YjE0NGFjNzNkNDgzLnBuZ1wiLFxuICAgICAgICAgICAgXCJuYW1lXCI6IFwi6bG8X3RleC5wbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcImRyYWdEb3RcIjoge1xuICAgICAgICAgICAgXCJ4XCI6IDUyMS41LFxuICAgICAgICAgICAgXCJ5XCI6IDE5Ny40NjExNjUwNDg1NDM2OFxuICAgICAgICB9LFxuICAgICAgICBcImdJZHhcIjogXCIxXCIsXG4gICAgICAgIFwicmVjdFwiOiB7XG4gICAgICAgICAgICBcInhcIjogNDYuOSxcbiAgICAgICAgICAgIFwieVwiOiA5NSxcbiAgICAgICAgICAgIFwid2lkdGhcIjogMjAwLFxuICAgICAgICAgICAgXCJoZWlnaHRcIjogMjAwXG4gICAgICAgIH1cbiAgICB9LCB7XG4gICAgICAgIFwiaWRcIjogXCIxNjM4MDkwODI0MjQ0XCIsXG4gICAgICAgIFwiaW5kZXhcIjogMTEsXG4gICAgICAgIFwiYXVkaW9fdXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vMjY1NmI3MmFlYzdmNmRlZjA3NzEzZmJjOTkzMDkxNjgubXAzXCIsXG4gICAgICAgIFwiaXRlbVR5cGVcIjogXCJyZWN0XCIsXG4gICAgICAgIFwiZm9udFNjYWxlXCI6IDAuODE0ODQzNzUsXG4gICAgICAgIFwiaW1nU2NhbGVcIjogMSxcbiAgICAgICAgXCJpbWdTaXplV1wiOiAwLFxuICAgICAgICBcImltZ1NpemVIXCI6IDAsXG4gICAgICAgIFwibWFwU2NhbGVcIjogMC44MTQ4NDM3NSxcbiAgICAgICAgXCJza2VKc29uRGF0YVwiOiB7XG4gICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzIwY2JmM2QxODZhMTk3YmFhZWQzODIwNGRkMDE3ZjUxLmpzb25cIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIueMq19za2UuanNvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidGV4SnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9kN2RlNWEzMmRlM2VlMWFkNjYwZGM1MDliYThhZGYxZC5qc29uXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLnjKtfdGV4Lmpzb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInRleFBuZ0RhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9hZjg2ZTk2N2FhYjg2MzJjZDBiMjZkNjBhNjJmMDY3NS5wbmdcIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIueMq190ZXgucG5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkcmFnRG90XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiA1MjEuNSxcbiAgICAgICAgICAgIFwieVwiOiAxOTcuNDYxMTY1MDQ4NTQzNjhcbiAgICAgICAgfSxcbiAgICAgICAgXCJnSWR4XCI6IFwiMFwiLFxuICAgICAgICBcImxhYmVsVGV4dFwiOiBcIjEwXCIsXG4gICAgICAgIFwicG9zWFwiOiA0MDguNTAxMTQ0OTg1MDcyMzYsXG4gICAgICAgIFwicG9zWVwiOiAyODguOTk2ODk2NzY5NDMsXG4gICAgICAgIFwicmVjdFwiOiB7XG4gICAgICAgICAgICBcInhcIjogMS40LFxuICAgICAgICAgICAgXCJ5XCI6IDIyMixcbiAgICAgICAgICAgIFwid2lkdGhcIjogNjUsXG4gICAgICAgICAgICBcImhlaWdodFwiOiAxMzRcbiAgICAgICAgfVxuICAgIH0sIHtcbiAgICAgICAgXCJpZFwiOiBcIjE2MzgwOTA4OTc2NDRcIixcbiAgICAgICAgXCJpbmRleFwiOiAxMixcbiAgICAgICAgXCJhdWRpb191cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS85YmJmOGJhMmZhN2Y5NmVhNWE5NWMyN2EzODQ0MTRhMi5tcDNcIixcbiAgICAgICAgXCJpdGVtVHlwZVwiOiBcInJlY3RcIixcbiAgICAgICAgXCJmb250U2NhbGVcIjogMC44MTQ4NDM3NSxcbiAgICAgICAgXCJpbWdTY2FsZVwiOiAxLFxuICAgICAgICBcImltZ1NpemVXXCI6IDAsXG4gICAgICAgIFwiaW1nU2l6ZUhcIjogMCxcbiAgICAgICAgXCJtYXBTY2FsZVwiOiAwLjgxNDg0Mzc1LFxuICAgICAgICBcInNrZUpzb25EYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vZDg1MDZlYmRkYjI5YzhkMDhiNGI5MzM3NmI0NWY1YzkuanNvblwiLFxuICAgICAgICAgICAgXCJuYW1lXCI6IFwi6bifX3NrZS5qc29uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0ZXhKc29uRGF0YVwiOiB7XG4gICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzlmYWQ0N2M5OTAyNWI3YjIyOWRmNTJhZmI3OTdlYzVjLmpzb25cIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIum4n190ZXguanNvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidGV4UG5nRGF0YVwiOiB7XG4gICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2U4NmIxMzZiOTcwNjc2OGM1Y2EwZGJhM2RjMGFhYjIxLnBuZ1wiLFxuICAgICAgICAgICAgXCJuYW1lXCI6IFwi6bifX3RleC5wbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcImRyYWdEb3RcIjoge1xuICAgICAgICAgICAgXCJ4XCI6IDUyMS41LFxuICAgICAgICAgICAgXCJ5XCI6IDE5Ny40NjExNjUwNDg1NDM2OFxuICAgICAgICB9LFxuICAgICAgICBcImdJZHhcIjogXCIwXCIsXG4gICAgICAgIFwibGFiZWxUZXh0XCI6IFwiOVwiLFxuICAgICAgICBcInBvc1hcIjogNTczLFxuICAgICAgICBcInBvc1lcIjogNzQsXG4gICAgICAgIFwicmVjdFwiOiB7XG4gICAgICAgICAgICBcInhcIjogMTI3LjksXG4gICAgICAgICAgICBcInlcIjogNDEsXG4gICAgICAgICAgICBcIndpZHRoXCI6IDE1NCxcbiAgICAgICAgICAgIFwiaGVpZ2h0XCI6IDY2XG4gICAgICAgIH1cbiAgICB9LCB7XG4gICAgICAgIFwiaWRcIjogXCIxNjM4MDkwOTQ4OTUwXCIsXG4gICAgICAgIFwiaW5kZXhcIjogMTMsXG4gICAgICAgIFwiaXRlbVR5cGVcIjogXCJyZWN0XCIsXG4gICAgICAgIFwiZm9udFNjYWxlXCI6IDAuODE0ODQzNzUsXG4gICAgICAgIFwiaW1nU2NhbGVcIjogMSxcbiAgICAgICAgXCJpbWdTaXplV1wiOiAwLFxuICAgICAgICBcImltZ1NpemVIXCI6IDAsXG4gICAgICAgIFwibWFwU2NhbGVcIjogMC44MTQ4NDM3NSxcbiAgICAgICAgXCJza2VKc29uRGF0YVwiOiB7XG4gICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzNkMWQ0OWU1ODNkOTdjZDUwOTdkMDgxMDIyNjViMWM2Lmpzb25cIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIuiaguiagV9za2UuanNvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidGV4SnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS85YTNhNWM4NzFiMjg4YWViYjFlNjkyMGYxZTk3MDlmOC5qc29uXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLomoLomoFfdGV4Lmpzb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInRleFBuZ0RhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8xZmFkNjJmMzEzYjZmZjcyYTY0MmNiNGIxNWFlYWYwNC5wbmdcIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIuiaguiagV90ZXgucG5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkcmFnRG90XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiA1MjEuNSxcbiAgICAgICAgICAgIFwieVwiOiAxOTcuNDYxMTY1MDQ4NTQzNjhcbiAgICAgICAgfSxcbiAgICAgICAgXCJnSWR4XCI6IFwiMVwiLFxuICAgICAgICBcInJlY3RcIjoge1xuICAgICAgICAgICAgXCJ4XCI6IDQ2LjksXG4gICAgICAgICAgICBcInlcIjogOTUsXG4gICAgICAgICAgICBcIndpZHRoXCI6IDIwMCxcbiAgICAgICAgICAgIFwiaGVpZ2h0XCI6IDIwMFxuICAgICAgICB9XG4gICAgfV0sXG4gICAgXCJndWlkZV9hdWRpb1wiOiBcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vZDZjMWQzYjg0YTQ3NzRhMGZjMTgzYTE0YWJiYjZjMDkubXAzXCIsXG4gICAgXCJ3cm9uZ19hdWRpbzFcIjogXCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2I3N2VmMmE2Y2RjYjY1MDQ1MjA0ODRhOWIxOTdiMmZkLm1wM1wiLFxuICAgIFwid3JvbmdfYXVkaW8yXCI6IFwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS84ZGFjYjI0NDU4MTZlMWYwNjhlYTExNjc1MmMyMTE3My5tcDNcIixcbiAgICBcImJlZ2luX2F1ZGlvMVwiOiBcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vZTQ1YWQwODIzYWUyYzhlMDQyNDZkNzZjN2Y1NzAzMGQubXAzXCIsXG4gICAgXCJiZWdpbl9hdWRpbzJcIjogXCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzA1MjMyYWQ1MWY4ZDllMWFmNmRkMTI3MzE0N2JjNThmLm1wM1wiLFxuICAgIFwicmlnaHRfYXVkaW9cIjogXCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzMzMGVmZjhkNWU4Y2M0Mjk5NjVkYTgyNjUyMjA3ZmYyLm1wM1wiLFxuICAgIFwid3JvbmdfYXVkaW9cIjogXCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzE2NjQxNzBlNTY5ZDk3NDI3OWJjZWM2MjZiZTE3NmQ5Lm1wM1wiLFxuICAgIFwiYmVnaW5fc2VwX3RpbWVcIjogMTVcbn0iXX0= -//------QC-SOURCE-SPLIT------ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/OP15/scene/OP15.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, 'ddbf4iIJnhHIImfp+SKRF1C', 'OP15'); -// OP15/scene/OP15.js -"use strict"; - -var _util = require("../script/util"); - -var _defaultData = require("../script/defaultData"); - -var _xstate = require("../script/xstate"); - -function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } it = o[Symbol.iterator](); return it.next.bind(it); } - -function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } - -function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } + return a.prototype._init = function () { + this.__cache.transitions || B(this).forEach(function (t) { + return t.on; + }); + }, a.prototype.withConfig = function (t, n) { + var r = this.options, + i = r.actions, + o = r.activities, + s = r.guards, + c = r.services, + u = r.delays; + return new a(this.config, { + actions: _e(_e({}, i), t.actions), + activities: _e(_e({}, o), t.activities), + guards: _e(_e({}, s), t.guards), + services: _e(_e({}, c), t.services), + delays: _e(_e({}, u), t.delays) + }, null != n ? n : this.context); + }, a.prototype.withContext = function (t) { + return new a(this.config, this.options, t); + }, Object.defineProperty(a.prototype, "context", { + get: function get() { + return N(this._context) ? this._context() : this._context; + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(a.prototype, "definition", { + get: function get() { + return { + id: this.id, + key: this.key, + version: this.version, + context: this.context, + type: this.type, + initial: this.initial, + history: this.history, + states: d(this.states, function (t) { + return t.definition; + }), + on: this.on, + transitions: this.transitions, + entry: this.onEntry, + exit: this.onExit, + activities: this.activities || [], + meta: this.meta, + order: this.order || -1, + data: this.doneData, + invoke: this.invoke, + description: this.description, + tags: this.tags + }; + }, + enumerable: !1, + configurable: !0 + }), a.prototype.toJSON = function () { + return this.definition; + }, Object.defineProperty(a.prototype, "on", { + get: function get() { + if (this.__cache.on) return this.__cache.on; + var t = this.transitions; + return this.__cache.on = t.reduce(function (t, e) { + return t[e.eventType] = t[e.eventType] || [], t[e.eventType].push(e), t; + }, {}); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(a.prototype, "after", { + get: function get() { + return this.__cache.delayedTransitions || (this.__cache.delayedTransitions = this.getDelayedTransitions(), this.__cache.delayedTransitions); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(a.prototype, "transitions", { + get: function get() { + return this.__cache.transitions || (this.__cache.transitions = this.formatTransitions(), this.__cache.transitions); + }, + enumerable: !1, + configurable: !0 + }), a.prototype.getCandidates = function (t) { + if (this.__cache.candidates[t]) return this.__cache.candidates[t]; + var e = "" === t, + n = this.transitions.filter(function (n) { + var r = n.eventType === t; + return e ? r : r || "*" === n.eventType; + }); + return this.__cache.candidates[t] = n, n; + }, a.prototype.getDelayedTransitions = function () { + var t = this, + n = this.config.after; + if (!n) return []; -function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } + var r = function r(e, n) { + var r = Et(N(e) ? "".concat(t.id, ":delay[").concat(n, "]") : e, t.id); + return t.onEntry.push(yt(r, { + delay: e + })), t.onExit.push(xt(r)), r; + }; -var pure = _xstate.actions.pure, - send = _xstate.actions.send, - raise = _xstate.actions.raise, - sendParent = _xstate.actions.sendParent; -cc.Class({ - "extends": cc.Component, - properties: { - /*ant: { - default: null, - type: cc.Node, - }, - apple: { - default: null, - type: cc.Node, - }, - bird: { - default: null, - type: cc.Node, - }, - car: { - default: null, - type: cc.Node, - }, - cat: { - default: null, - type: cc.Node, - }, - cow: { - default: null, - type: cc.Node, - }, - duck: { - default: null, - type: cc.Node, - }, - egg: { - default: null, - type: cc.Node, - }, - farmer: { - default: null, - type: cc.Node, - }, - fish: { - default: null, - type: cc.Node, - }, - girl: { - default: null, - type: cc.Node, - }, - hen: { - default: null, - type: cc.Node, - }, - house: { - default: null, - type: cc.Node, - },*/ - rightAudio: { - "default": null, - type: cc.AudioClip - }, - wrongAudio: { - "default": null, - type: cc.AudioClip - }, - logoCat: { - "default": null, - type: cc.Node - } - }, - playAni: function playAni(idx, name, options) { - var times = options && options.times || 1; - var cb = options && options.callback || null; // const cat = cc.find(`Canvas/frame-border/ground/${node}`); - - var node = this._figurePointRectArray[idx].node; - var dragonDisplay = node.getComponent(dragonBones.ArmatureDisplay); - var state = dragonDisplay.playAnimation(name, times); // dragonDisplay.addEventListener(dragonBones.EventObject.COMPLETE, (event) => { - // //TODO 这里写触å‘事件 - // //event.name为事件åç§° - // console.log(event.name) - // }, this); - // animationDisplay.addEventListener(dragonBones.EventObject.COMPLETE, completeCallback); - - return state; - }, - // 生命周期 onLoad - onLoad: function onLoad() { - this._timeoutIds = []; - this._intervalIds = []; - this.initSceneData(); - this.initSize(); - window.ccc = this; - }, - _imageResList: null, - _audioResList: null, - _animaResList: null, - _lastFingerPosition: null, - _hintsNodeList: null, - _figurePointRectArray: null, - _allAnimationNodes: null, - initSceneData: function initSceneData() { - this._imageResList = []; - this._audioResList = []; - this._animaResList = []; - this._allAnimationNodes = []; - this._hintsNodeList = []; - this._lastFingerPosition = { - pos: null, - dirty: false - }; - this._figurePointRectArray = []; - }, - _designSize: null, - // 设计分辨率 - _frameSize: null, - // å±å¹•分辨率 - _mapScaleMin: null, - // 场景ä¸å¸¸ç”¨ç¼©æ”¾ï¼ˆå–大值) - _mapScaleMax: null, - // 场景ä¸å¸¸ç”¨ç¼©æ”¾ï¼ˆå–å°å€¼ï¼‰ - _cocosScale: null, - // cocos 自缩放 (较少用到) - initSize: function initSize() { - // 注æ„cc.winSizeåªæœ‰åœ¨é€‚é…åŽ(修改fitHeight/fitWidthåŽ)æ‰èƒ½èŽ·å–到æ£ç¡®çš„值,å› æ¤ä½¿ç”¨cc.getFrameSize()æ¥èŽ·å–åˆå§‹çš„å±å¹•å¤§å° - var screen_size = cc.view.getFrameSize().width / cc.view.getFrameSize().height; - var design_size = cc.Canvas.instance.designResolution.width / cc.Canvas.instance.designResolution.height; - var f = screen_size >= design_size; - cc.Canvas.instance.fitHeight = f; - cc.Canvas.instance.fitWidth = !f; - var frameSize = cc.view.getFrameSize(); - this._frameSize = frameSize; - this._designSize = cc.view.getDesignResolutionSize(); - var sx = cc.winSize.width / frameSize.width; - var sy = cc.winSize.height / frameSize.height; - this._cocosScale = Math.min(sx, sy); - sx = frameSize.width / this._designSize.width; - sy = frameSize.height / this._designSize.height; - this._mapScaleMin = Math.min(sx, sy) * this._cocosScale; - this._mapScaleMax = Math.max(sx, sy) * this._cocosScale; - }, - createStateMachine: function createStateMachine() { - var _this = this; + return (T(n) ? n.map(function (t, n) { + var i = r(t.delay, n); + return _e(_e({}, t), { + event: i + }); + }) : g(s(n).map(function (t, i) { + var o = n[t], + a = A(o) ? { + target: o + } : o, + s = isNaN(+t) ? t : +t, + c = r(s, i); + return S(a).map(function (t) { + return _e(_e({}, t), { + event: c, + delay: s + }); + }); + }))).map(function (n) { + var r = n.delay; + return _e(_e({}, t.formatTransition(n)), { + delay: r + }); + }); + }, a.prototype.getStateNodes = function (t) { + var e, + n = this; + if (!t) return []; + var r = t instanceof kt ? t.value : f(t, this.delimiter); - var check = [{ - target: '#game.end', - cond: function cond(ctx, evt) { - console.log('[answer NEXT] check if end', ctx.questionIndex >= ctx.questionsCount - 1); - return ctx.questionIndex >= ctx.questionsCount - 1; + if (A(r)) { + var i = this.getStateNode(r).initial; + return void 0 !== i ? this.getStateNodes(((e = {})[r] = i, e)) : [this, this.states[r]]; } - }, { - target: 'hint' - } // reenter 'hint' state - ]; - var QuestionState = { - id: 'question', - initial: 'hint', - states: { - hint: { - invoke: { - src: function src(ctx, event) { - console.log("[hint] play question " + ctx.questionIndex + ": " + ctx.questionPlayTimes + " audio"); - ctx.questionPlayTimes += 1; - return new Promise(function (resolve, reject) { - (0, _util.playAudioByUrl)(ctx.questions[ctx.questionIndex].audio_url, function () { - console.log('hint finish'); - resolve(); - }); - }); - }, - onDone: 'answer', - onError: 'answer' - } - }, - answer: { - after: { - 8000: [{ - target: 'wrong' - } // reenter 'hint' state - ] - }, - invoke: { - src: function src(context, event) { - return function (callback, onReceive) { - console.log('[answer] thinking and playing'); // check every second - var id = setInterval(function () { - console.log("aaaaaa"); + var o = s(r), + a = o.map(function (t) { + return n.getStateNode(t); + }); + return a.push(this), a.concat(o.reduce(function (t, e) { + var i = n.getStateNode(e).getStateNodes(r[e]); + return t.concat(i); + }, [])); + }, a.prototype.handles = function (t) { + var e = u(t); + return this.events.includes(e); + }, a.prototype.resolveState = function (t) { + var n = Array.from(J([], this.getStateNodes(t.value))); + return new kt(_e(_e({}, t), { + value: this.resolve(t.value), + configuration: n, + done: H(n, this), + tags: G(n) + })); + }, a.prototype.transitionLeafNode = function (t, e, n) { + var r = this.getStateNode(t).next(e, n); + return r && r.transitions.length ? r : this.next(e, n); + }, a.prototype.transitionCompoundNode = function (t, e, n) { + var r = s(t), + i = this.getStateNode(r[0])._transition(t[r[0]], e, n); - if (!_this._lastFingerPosition.dirty) { - return; - } + return i && i.transitions.length ? i : this.next(e, n); + }, a.prototype.transitionParallelNode = function (t, e, n) { + var i, + o, + a = {}; - var region = context.questions[context.questionIndex]; + try { + for (var c = r(s(t)), u = c.next(); !u.done; u = c.next()) { + var h = u.value, + f = t[h]; - var result = _this.checkInRegion(region.rect); + if (f) { + var l = this.getStateNode(h)._transition(f, e, n); - if (result === null) { - return; - } - - console.log('[Genise JS] checkInRegion' + result); - - if (result) { - callback('RIGHT'); - } else { - callback('WRONG'); - } - }, 300); - - _this._intervalIds.push(id); // Perform cleanup - - - return function () { - return clearInterval(id); - }; - }; - } - }, - on: { - RIGHT: { - target: 'right' - }, - WRONG: { - target: 'wrong' - } + l && (a[h] = l); } - }, - right: { - invoke: { - src: function src(context, event) { - _this._lastFingerPosition.pos = null; - _this._lastFingerPosition.dirty = false; - return new Promise(function (resolve, reject) { - console.log('answer right'); // this.playAni(context.questionIndex, 'normal') + } + } catch (t) { + i = { + error: t + }; + } finally { + try { + u && !u.done && (o = c["return"]) && o.call(c); + } finally { + if (i) throw i.error; + } + } - var an = context.questions[context.questionIndex].node; - console.log('in right ' + typeof an); - an.active = true; - var dragonDisplay = an.getComponent(dragonBones.ArmatureDisplay); - dragonDisplay.playAnimation('normal', 0); + var d = s(a).map(function (t) { + return a[t]; + }), + p = g(d.map(function (t) { + return t.transitions; + })); + if (!d.some(function (t) { + return t.transitions.length > 0; + })) return this.next(e, n); + var v = g(d.map(function (t) { + return t.entrySet; + })), + y = g(s(a).map(function (t) { + return a[t].configuration; + })); + return { + transitions: p, + entrySet: v, + exitSet: g(d.map(function (t) { + return t.exitSet; + })), + configuration: y, + source: e, + actions: g(s(a).map(function (t) { + return a[t].actions; + })) + }; + }, a.prototype._transition = function (t, e, n) { + return A(t) ? this.transitionLeafNode(t, e, n) : 1 === s(t).length ? this.transitionCompoundNode(t, e, n) : this.transitionParallelNode(t, e, n); + }, a.prototype.next = function (t, e) { + var n, + a, + s, + u = this, + h = e.name, + l = [], + d = []; - var ddLogoCat = _this.logoCat.getComponent(dragonBones.ArmatureDisplay); + try { + for (var p = r(this.getCandidates(h)), y = p.next(); !y.done; y = p.next()) { + var m = y.value, + S = m.cond, + x = m["in"], + w = t.context, + b = !x || (A(x) && Mt(x) ? t.matches(f(this.getStateNodeById(x).path, this.delimiter)) : c(f(x, this.delimiter), v(this.path.slice(0, -2))(t.value))), + _ = !1; - ddLogoCat.playAnimation('right', 1); - ddLogoCat.once(dragonBones.EventObject.COMPLETE, function () { - this.logoCat.getComponent(dragonBones.ArmatureDisplay).playAnimation('normal', 0); - }, _this); - (0, _util.playAudioByUrl)(_this.rightAudio, function () { - resolve(); - }); - }); - }, - onDone: { - target: '#QuestionsArray.next', - actions: raise('CHECK') - }, - onError: { - target: '#QuestionsArray.next', - actions: raise('CHECK') - } + try { + _ = !S || R(this.machine, S, w, e, t); + } catch (t) { + throw new Error("Unable to evaluate guard '".concat(S.name || S.type, "' in transition for event '").concat(h, "' in state node '").concat(this.id, "':\n").concat(t.message)); } - }, - wrong: { - invoke: { - src: function src(context, event) { - _this._lastFingerPosition.pos = null; - _this._lastFingerPosition.dirty = false; - return new Promise(function (resolve, reject) { - console.log('answer wrong', context.questionIndex, context.questionPlayTimes, context.maxQuestionTryTimes); - var ddLogoCat = _this.logoCat.getComponent(dragonBones.ArmatureDisplay); + if (_ && b) { + void 0 !== m.target && (d = m.target), l.push.apply(l, o([], i(m.actions), !1)), s = m; + break; + } + } + } catch (t) { + n = { + error: t + }; + } finally { + try { + y && !y.done && (a = p["return"]) && a.call(p); + } finally { + if (n) throw n.error; + } + } - ddLogoCat.playAnimation('wrong', 1); - ddLogoCat.once(dragonBones.EventObject.COMPLETE, function () { - this.logoCat.getComponent(dragonBones.ArmatureDisplay).playAnimation('normal', 0); - }, _this); - var wrongEffect = _this.wrongAudio; // 第一和第二题的æç¤ºéŸ³ + if (s) { + if (!d.length) return { + transitions: [s], + entrySet: [], + exitSet: [], + configuration: t.value ? [this] : [], + source: t, + actions: l + }; + var E = g(d.map(function (e) { + return u.getRelativeStateNodes(e, t.historyValue); + })), + T = !!s.internal; + return { + transitions: [s], + entrySet: T ? [] : g(E.map(function (t) { + return u.nodesFromChild(t); + })), + exitSet: T ? [] : [this], + configuration: E, + source: t, + actions: l + }; + } + }, a.prototype.nodesFromChild = function (t) { + if (t.escapes(this)) return []; - if ([0, 1].includes(context.questionIndex)) { - wrongEffect = _this.data["wrong_audio" + context.questionPlayTimes]; - } else { - // éžç¬¬ä¸€å’Œç¬¬äºŒé¢˜ï¼Œå¹¶ä¸”åšç¬¬äºŒéçš„æç¤ºéŸ³ - if (context.questionPlayTimes == 2) { - wrongEffect = _this.data["wrong_audio" + context.questionPlayTimes]; - } - } + for (var e = [], n = t; n && n !== this;) { + e.push(n), n = n.parent; + } - if (context.questionPlayTimes >= context.maxQuestionTryTimes) { - var an = context.questions[context.questionIndex].node; - an.active = true; + return e.push(this), e; + }, a.prototype.escapes = function (t) { + if (this === t) return !1; - if (an.isSpine) { - var skeleton = an.getComponent(sp.Skeleton); - skeleton.setToSetupPose(); - setTimeout(function () { - skeleton.setAnimation(0, 'normal', true); - }, 1); - } else { - var dragonDisplay = an.getComponent(dragonBones.ArmatureDisplay); - dragonDisplay.playAnimation('normal', 0); - console.log('show animation', an.active); - } - } + for (var e = this.parent; e;) { + if (e === t) return !1; + e = e.parent; + } - (0, _util.playAudioByUrl)(wrongEffect, function () { - if (context.questionPlayTimes >= context.maxQuestionTryTimes) { - // const an = context.questions[context.questionIndex].node; - // an.active = true; - // const dragonDisplay = an.getComponent(dragonBones.ArmatureDisplay); - // dragonDisplay.playAnimation('normal', 0); - // console.log('show animation', an.active); - reject(); - } else { - resolve(); - } - }); - }); - }, - onDone: { - target: 'hint' // actions: raise('CHECK') + return !0; + }, a.prototype.getActions = function (t, e, n, a) { + var s, + c, + u, + h, + f = J([], a ? this.getStateNodes(a.value) : [this]), + l = t.configuration.length ? J(f, t.configuration) : f; - }, - onError: { - target: '#QuestionsArray.next', - actions: raise('CHECK') - } - } + try { + for (var d = r(l), p = d.next(); !p.done; p = d.next()) { + X(f, m = p.value) || t.entrySet.push(m); + } + } catch (t) { + s = { + error: t + }; + } finally { + try { + p && !p.done && (c = d["return"]) && c.call(d); + } finally { + if (s) throw s.error; } } - }; - var QuestionsArrayStatus = { - id: 'QuestionsArray', - initial: 'play', - states: { - play: _extends({}, QuestionState), - next: { - on: { - CHECK: [{ - target: '#game.end', - cond: function cond(ctx, evt) { - ctx.questionIndex += 1; - ctx.questionPlayTimes = 0; - console.log('#game.end', ctx.questionIndex >= ctx.questionsCount); - return ctx.questionIndex >= ctx.questionsCount; - } - }, { - target: 'play' - }] - } + + try { + for (var v = r(f), y = v.next(); !y.done; y = v.next()) { + var m; + X(l, m = y.value) && !X(t.exitSet, m.parent) || t.exitSet.push(m); + } + } catch (t) { + u = { + error: t + }; + } finally { + try { + y && !y.done && (h = v["return"]) && h.call(v); + } finally { + if (u) throw u.error; } } - }; - var state = { - id: 'game', - initial: 'begin', - context: { - questionIndex: 0, - questionPlayTimes: 0, - maxQuestionTryTimes: 2, - questionsCount: this._figurePointRectArray.length, - questions: this._figurePointRectArray - }, - states: { - begin: { - invoke: { - src: function src(ctx) { - console.log('game begin 1'); - - if (window.courseware && window.courseware.openOsmoFingerRead) { - _this.isOpenedOsmoFingerRead = true; - window.courseware.openOsmoFingerRead({ - "page_id": 27, - "book_id": "opw1" - }); - } - - var dragonDisplay = _this.logoCat.getComponent(dragonBones.ArmatureDisplay); - - var state = dragonDisplay.playAnimation('begin', 0); - return new Promise(function (resolve, reject) { - (0, _util.playAudioByUrl)(_this.data.begin_audio, function () { - console.log('game begin audio finish'); - resolve(); - }); - }); - }, - onDone: 'guide', - onError: 'guide' - } - }, - guide: { - invoke: { - src: function src(ctx) { - return new Promise(function (resolve, reject) { - (0, _util.playAudioByUrl)(_this.data.guide_audio, function () { - console.log('game guide audio finish'); - reject(); - }); - }); - }, - onDone: 'playing', - onError: 'playing' - } - }, - playing: _extends({ - entry: function entry(ctx) { - console.log('entry play stage'); - - var dragonDisplay = _this.logoCat.getComponent(dragonBones.ArmatureDisplay); - - var state = dragonDisplay.playAnimation('normal', 0); - cc.assetManager.loadRemote(_this.data.playing_audio, function (err, audioClip) { - cc.audioEngine.playMusic(audioClip, true, 0.8); - }); - ctx.questions.forEach(function (block) { - block.node.active = false; - }); - }, - exit: function exit() { - console.log('exit play stage'); - cc.audioEngine.stopMusic(); - }, - on: { - NEXT: 'end' - } - }, QuestionsArrayStatus), - end: { - entry: function entry(ctx, event) { - console.log('game end'); - var dragonDisplay = _this.logoCat.getComponent(dragonBones.ArmatureDisplay); - - var state = dragonDisplay.playAnimation('finish', 0); + t.source || (t.exitSet = [], t.entrySet.push(this)); + var S = g(t.entrySet.map(function (r) { + var i = []; + if ("final" !== r.type) return i; + var o = r.parent; + if (!o.parent) return i; + i.push(Tt(r.id, r.doneData), Tt(o.id, r.doneData ? x(r.doneData, e, n) : void 0)); + var a = o.parent; + return "parallel" === a.type && U(a).every(function (e) { + return H(t.configuration, e); + }) && i.push(Tt(a.id)), i; + })); + t.exitSet.sort(function (t, e) { + return e.order - t.order; + }), t.entrySet.sort(function (t, e) { + return t.order - e.order; + }); - if (window.courseware && window.courseware.closeOsmoFingerRead) { - _this.isOpenedOsmoFingerRead = false; - window.courseware.closeOsmoFingerRead(); - } + var w = new Set(t.entrySet), + b = new Set(t.exitSet), + _ = i([g(Array.from(w).map(function (t) { + return o(o([], i(t.activities.map(function (t) { + return wt(t); + })), !1), i(t.onEntry), !1); + })).concat(S.map(vt)), g(Array.from(b).map(function (t) { + return o(o([], i(t.onExit), !1), i(t.activities.map(function (t) { + return bt(t); + })), !1); + }))], 2), + E = _[0], + T = _[1]; - (0, _util.playAudioByUrl)(_this.data.end_audio, function () { - console.log('game finish'); - (0, _util.onHomeworkFinish)(); - }); // return new Promise((resolve,reject) => { - // setTimeout(() => { - // console.log('hint finish'); - // resolve() - // }, 2000) - // }) - } - } + return dt(T.concat(t.actions).concat(E), this.machine.options.actions); + }, a.prototype.transition = function (t, e, n) { + void 0 === t && (t = this.initialState); + var r, + a, + s = L(e); + if (t instanceof kt) r = void 0 === n ? t : this.resolveState(kt.from(t, n));else { + var c = A(t) ? this.resolve(l(this.getResolvedPath(t))) : this.resolve(t), + u = null != n ? n : this.machine.context; + r = this.resolveState(kt.from(c, u)); } - }; - var after = {}; - - var _loop = function _loop(i) { - var t = _this._hintsNodeList[i].node; - var k = _this._hintsNodeList[i].after; - after[k] = { - actions: function actions() { - if (t.isSpine) { - var skeleton = t.getComponent(sp.Skeleton); - skeleton.setToSetupPose(); - setTimeout(function () { - skeleton.setAnimation(0, 'enlarge', false); - }, 1); // skeleton.animation = skeleton.animationNames[0]; - } else { - var dragonDisplay = t.getComponent(dragonBones.ArmatureDisplay); - dragonDisplay.playAnimation('enlarge', 1); - console.log(dragonDisplay._armatureKey, 'enlarge'); - dragonDisplay.addEventListener(dragonBones.EventObject.COMPLETE, function (event) {// TODO 这里写触å‘事件 - // event.name为事件åç§° - // event.armature.animation.play('normal', 0); - // console.log(event.animationState.name, dragonDisplay._armatureKey, 'end') - }, _this); - } // const dragonDisplay = t.getComponent(dragonBones.ArmatureDisplay); - // dragonDisplay.playAnimation('enlarge', 1); - // console.log(dragonDisplay._armatureKey, 'enlarge') - // dragonDisplay.addEventListener(dragonBones.EventObject.COMPLETE, (event) => { - // //TODO 这里写触å‘事件 - // //event.name为事件åç§° - // event.armature.animation.play('normal', 0); - // console.log(event.animationState.name, dragonDisplay._armatureKey, 'end') - // }, this); + if (this.strict && !this.events.includes(s.name) && (a = s.name, !/^(done|error)\./.test(a))) throw new Error("Machine '".concat(this.id, "' does not accept event '").concat(s.name, "'")); + var h = this._transition(r.value, r, s) || { + transitions: [], + configuration: [], + entrySet: [], + exitSet: [], + source: r, + actions: [] + }, + f = J([], this.getStateNodes(r.value)), + d = h.configuration.length ? J(f, h.configuration) : f; + return h.configuration = o([], i(d), !1), this.resolveTransition(h, r, s); + }, a.prototype.resolveRaisedTransition = function (t, e, n) { + var r, + a = t.actions; + return (t = this.transition(t, e))._event = n, t.event = n.data, (r = t.actions).unshift.apply(r, o([], i(a), !1)), t; + }, a.prototype.resolveTransition = function (n, o, a, c) { + var u, + h, + f = this; + void 0 === a && (a = ht), void 0 === c && (c = this.machine.context); + var l = n.configuration, + d = !o || n.transitions.length > 0, + p = d ? $(this.machine, l) : void 0, + v = o ? o.historyValue ? o.historyValue : n.source ? this.machine.historyValue(o.value) : void 0 : void 0, + y = o ? o.context : c, + g = this.getActions(n, y, a, o), + m = o ? _e({}, o.activities) : {}; + try { + for (var S = r(g), w = S.next(); !w.done; w = S.next()) { + var E = w.value; + E.type === K ? m[E.activity.id || E.activity.type] = E : E.type === Q && (m[E.activity.id || E.activity.type] = !1); } - }; - }; - - for (var i = 0; i < this._hintsNodeList.length; i++) { - _loop(i); - } - - if (this.data.begin_sep_time) { - var t = +this.data.begin_sep_time * 1000; - after[t] = { - actions: function actions() { - console.log('game begin 2'); - - for (var _i = 0; _i < _this._allAnimationNodes.length; _i++) { - var _t = _this._allAnimationNodes[_i]; + } catch (t) { + u = { + error: t + }; + } finally { + try { + w && !w.done && (h = S["return"]) && h.call(S); + } finally { + if (u) throw u.error; + } + } - if (_t.isSpine) { - (function () { - var skeleton = _t.getComponent(sp.Skeleton); - - console.log('skeleton: ', skeleton); - skeleton.setToSetupPose(); - setTimeout(function () { - skeleton.setAnimation(0, 'normal', true); - }, 1); - console.log('skeleton 22: ', skeleton); // skeleton.animation = skeleton.animationNames[0]; - })(); - } else { - var dragonDisplay = _t.getComponent(dragonBones.ArmatureDisplay); - - dragonDisplay.playAnimation('normal', 0); - } - } - } - }; - } - - state.states.begin.after = after; - var gameMachine = (0, _xstate.createMachine)(state); - window.gameMachine = gameMachine; - this.gameMachineService = (0, _xstate.interpret)(gameMachine).onTransition(function (state) {// console.log(1, state.value, state.context); - }); - this.gameMachineService.start(); + var T, + N, + O = i(Pt(this, o, y, a, g, this.machine.config.preserveActionOrder), 2), + P = O[0], + k = O[1], + I = i(b(P, function (e) { + return e.type === W || e.type === Y && e.to === t.SpecialTargets.Internal; + }), 2), + j = I[0], + C = I[1], + V = P.filter(function (t) { + var e; + return t.type === K && (null === (e = t.activity) || void 0 === e ? void 0 : e.type) === it; + }).reduce(function (t, e) { + return t[e.activity.id] = function (t, e, n, r) { + var i, + o = M(t.src), + a = null === (i = null == e ? void 0 : e.options.services) || void 0 === i ? void 0 : i[o.type], + s = t.data ? x(t.data, n, r) : void 0, + c = a ? Vt(a, t.id, s) : Ct(t.id); + return c.meta = t, c; + }(e.activity, f.machine, k, a), t; + }, o ? _e({}, o.children) : {}), + L = p ? n.configuration : o ? o.configuration : [], + D = H(L, this), + R = new kt({ + value: p || o.value, + context: k, + _event: a, + _sessionid: o ? o._sessionid : null, + historyValue: p ? v ? (T = v, N = p, { + current: N, + states: _(T, N) + }) : void 0 : o ? o.historyValue : void 0, + history: !p || n.source ? o : void 0, + actions: p ? C : [], + activities: p ? m : o ? o.activities : {}, + events: [], + configuration: L, + transitions: n.transitions, + children: V, + done: D, + tags: null == o ? void 0 : o.tags, + machine: this + }), + z = y !== k; + R.changed = a.name === st || z; + var F = R.history; + F && delete F.history; + var U = !D && (this._transient || l.some(function (t) { + return t._transient; + })); + if (!(d || U && "" !== a.name)) return R; + var B = R; + if (!D) for (U && (B = this.resolveRaisedTransition(B, { + type: tt + }, a)); j.length;) { + var J = j.shift(); + B = this.resolveRaisedTransition(B, J._event, a); + } + var q = B.changed || (F ? !!B.actions.length || z || typeof F.value != typeof B.value || !function t(e, n) { + if (e === n) return !0; + if (void 0 === e || void 0 === n) return !1; + if (A(e) || A(n)) return e === n; + var r = s(e), + i = s(n); + return r.length === i.length && r.every(function (r) { + return t(e[r], n[r]); + }); + }(B.value, F.value) : void 0); + return B.changed = q, B.history = F, B.tags = G(B.configuration), B; + }, a.prototype.getStateNode = function (t) { + if (Mt(t)) return this.machine.getStateNodeById(t); + if (!this.states) throw new Error("Unable to retrieve child state '".concat(t, "' from '").concat(this.id, "'; no child states exist.")); + var e = this.states[t]; + if (!e) throw new Error("Child state '".concat(t, "' does not exist on '").concat(this.id, "'")); + return e; + }, a.prototype.getStateNodeById = function (t) { + var e = Mt(t) ? t.slice("#".length) : t; + if (e === this.id) return this; + var n = this.machine.idMap[e]; + if (!n) throw new Error("Child state node '#".concat(e, "' does not exist on machine '").concat(this.id, "'")); + return n; + }, a.prototype.getStateNodeByPath = function (t) { + if ("string" == typeof t && Mt(t)) try { + return this.getStateNodeById(t.slice(1)); + } catch (t) {} - if (window.gameMachineService) { - window.gameMachineService = gameMachineService; - } - }, - // 生命周期 start - start: function start() { - var _this2 = this; + for (var e = h(t, this.delimiter).slice(), n = this; e.length;) { + var r = e.shift(); + if (!r.length) break; + n = n.getStateNode(r); + } - var getData = this.getData.bind(this); + return n; + }, a.prototype.resolve = function (t) { + var e, + n = this; + if (!t) return this.initialStateValue || Rt; - if (window && window.courseware) { - getData = window.courseware.getData; - } + switch (this.type) { + case "parallel": + return d(this.initialStateValue, function (e, r) { + return e ? n.getStateNode(r).resolve(t[r] || e) : Rt; + }); - getData(function (data) { - // console.log('data:', data); - _this2.data = data || _this2.getDefaultData(); - _this2.data = JSON.parse(JSON.stringify(_this2.data)); + case "compound": + if (A(t)) { + var r = this.getStateNode(t); + return "parallel" === r.type || "compound" === r.type ? ((e = {})[t] = r.initialStateValue, e) : t; + } - _this2.preloadItem(); - }); - window.air = window.air || {}; + return s(t).length ? d(t, function (t, e) { + return t ? n.getStateNode(e).resolve(t) : Rt; + }) : this.initialStateValue || {}; - if (window.air) { - window.air.osmoFingerReadCallback = function (result) { - if (!_this2.gameMachineService) { - return; - } // const st = this.gameMachineService.state.value.constructor.name == 'Object' - // && this.gameMachineService.state.value['playing'] - // && this.gameMachineService.state.value['playing'].constructor.name == 'Object' - // && this.gameMachineService.state.value['playing']['play'] - // && this.gameMachineService.state.value['playing']['play'] == 'answer' - // if (st) { - // } + default: + return t || Rt; + } + }, a.prototype.getResolvedPath = function (t) { + if (Mt(t)) { + var e = this.machine.idMap[t.slice("#".length)]; + if (!e) throw new Error("Unable to find state node '".concat(t, "'")); + return e.path; + } + return h(t, this.delimiter); + }, Object.defineProperty(a.prototype, "initialStateValue", { + get: function get() { + var t, e; + if (this.__cache.initialStateValue) return this.__cache.initialStateValue; + if ("parallel" === this.type) e = p(this.states, function (t) { + return t.initialStateValue || Rt; + }, function (t) { + return !("history" === t.type); + });else if (void 0 !== this.initial) { + if (!this.states[this.initial]) throw new Error("Initial state '".concat(this.initial, "' not found on '").concat(this.key, "'")); + e = F(this.states[this.initial]) ? this.initial : ((t = {})[this.initial] = this.states[this.initial].initialStateValue, t); + } else e = {}; + return this.__cache.initialStateValue = e, this.__cache.initialStateValue; + }, + enumerable: !1, + configurable: !0 + }), a.prototype.getInitialState = function (t, e) { + var n = this.getStateNodes(t); + return this.resolveTransition({ + configuration: n, + entrySet: n, + exitSet: [], + transitions: [], + source: void 0, + actions: [] + }, void 0, void 0, e); + }, Object.defineProperty(a.prototype, "initialState", { + get: function get() { + this._init(); - var resultObj = JSON.parse(result); - console.log('[Genise JS] ' + JSON.stringify(resultObj.finger_pos_in_page)); - var p = resultObj.finger_pos_in_page; + var t = this.initialStateValue; + if (!t) throw new Error("Cannot retrieve initial state from simple state '".concat(this.id, "'.")); + return this.getInitialState(t); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(a.prototype, "target", { + get: function get() { + var t; - if (p.x == -1 || p.y == -1) { - _this2._lastFingerPosition.pos = null; - _this2._lastFingerPosition.dirty = false; - return; + if ("history" === this.type) { + var e = this.config; + t = A(e.target) && Mt(e.target) ? l(this.machine.getStateNodeById(e.target).path.slice(this.path.length - 1)) : e.target; } - _this2._lastFingerPosition = { - pos: { - x: p.x, - y: p.y - }, - dirty: true - }; - - _this2.debugPointer(p.x, p.y); - }; - } - - this.isDebug = false; - }, - checkInRegion: function checkInRegion(r) { - console.log('r~~~: ', r); - - if (!this._lastFingerPosition && !this._lastFingerPosition.pos) { - return null; - } - - var p = this._lastFingerPosition ? this._lastFingerPosition.pos || { - x: 0, - y: 0 - } : { - x: 0, - y: 0 - }; - var w = p.x > r.x && p.x < r.x + r.width; - var h = p.y > r.y && p.y < r.y + r.height; - return w && h; - }, - getData: function getData(func) { - if (window && window.courseware) { - window.courseware.getData(func, 'scene'); - return; - } + return t; + }, + enumerable: !1, + configurable: !0 + }), a.prototype.getRelativeStateNodes = function (t, e, n) { + return void 0 === n && (n = !0), n ? "history" === t.type ? t.resolveHistory(e) : t.initialStateNodes : [t]; + }, Object.defineProperty(a.prototype, "initialStateNodes", { + get: function get() { + var t = this; + return F(this) ? [this] : "compound" !== this.type || this.initial ? g(y(this.initialStateValue).map(function (e) { + return t.getFromRelativePath(e); + })) : [this]; + }, + enumerable: !1, + configurable: !0 + }), a.prototype.getFromRelativePath = function (t) { + if (!t.length) return [this]; + var e = i(t), + n = e[0], + r = e.slice(1); + if (!this.states) throw new Error("Cannot retrieve subPath '".concat(n, "' from node with no states")); + var o = this.getStateNode(n); + if ("history" === o.type) return o.resolveHistory(); + if (!this.states[n]) throw new Error("Child state '".concat(n, "' does not exist on '").concat(this.id, "'")); + return this.states[n].getFromRelativePath(r); + }, a.prototype.historyValue = function (t) { + if (s(this.states).length) return { + current: t || this.initialStateValue, + states: p(this.states, function (e, n) { + if (!t) return e.historyValue(); + var r = A(t) ? void 0 : t[n]; + return e.historyValue(r || e.initialStateValue); + }, function (t) { + return !t.history; + }) + }; + }, a.prototype.resolveHistory = function (t) { + var e = this; + if ("history" !== this.type) return [this]; + var n = this.parent; - var middleLayer = cc.find('middleLayer'); + if (!t) { + var i = this.target; + return i ? g(y(i).map(function (t) { + return n.getFromRelativePath(t); + })) : n.initialStateNodes; + } - if (middleLayer) { - var middleLayerComponent = middleLayer.getComponent('middleLayer'); - middleLayerComponent.getData(func); - return; - } + var o, + a, + s = (o = n.path, a = "states", function (t) { + var e, + n, + i = t; - func(this.getDefaultData()); - }, - getDefaultData: function getDefaultData() { - return { - "begin_audio": "http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3", - "begin_sep_time": 1, - "guide_audio": "http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3", - "playing_audio": "http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3", - "right_audio": "http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3", - "wrong_audio": "http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3", - "wrong_audio1": "http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3", - "wrong_audio2": "http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3", - "end_audio": "http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3", - "bgItem": { - "url": "http://staging-teach.cdn.ireadabc.com/84ec6edc20bceaaa9dbe824092b6860d.png", - "rect": { - "x": 736.95, - "y": 0, - "width": 599.09, - "height": 775 + try { + for (var s = r(o), c = s.next(); !c.done; c = s.next()) { + var u = c.value; + i = i[a][u]; + } + } catch (t) { + e = { + error: t + }; + } finally { + try { + c && !c.done && (n = s["return"]) && n.call(s); + } finally { + if (e) throw e.error; + } } + + return i; + })(t).current; + return A(s) ? [n.getStateNode(s)] : g(y(s).map(function (t) { + return "deep" === e.history ? n.getFromRelativePath(t) : [n.states[t[0]]]; + })); + }, Object.defineProperty(a.prototype, "stateIds", { + get: function get() { + var t = this, + e = g(s(this.states).map(function (e) { + return t.states[e].stateIds; + })); + return [this.id].concat(e); }, - "hotZoneItemArr": [{ - "id": "1659333645573", - "index": 0, - "audio_url": "http://staging-teach.cdn.ireadabc.com/5a1a2670845bfe76662e86d9a3a69f81.mp3", - "itemType": "rect", - "fontScale": 1.61953125, - "imgScale": 1, - "imgSizeW": 0, - "imgSizeH": 0, - "mapScale": 1.61953125, - "dragDot": { - "x": 1036.5, - "y": 387.5 - }, - "gIdx": "1", - "labelText": "1", - "posX": 887.5, - "posY": 165.5, - "skeJsonData": { - "url": "http://staging-teach.cdn.ireadabc.com/133a1f60719ed26247e35dc022d82862.json", - "name": "spineboy-pro.json" - }, - "texJsonData": { - "url": "http://staging-teach.cdn.ireadabc.com/e0945b8265ea3b8053afb814c6b849d3.atlas", - "name": "spineboy-pro.atlas" - }, - "texPngData": { - "url": "http://staging-teach.cdn.ireadabc.com/517553f50224915148f9efc5b7556798.png", - "name": "spineboy-pro.png" - }, - "animType": "spine", - "rect": { - "x": 48.05, - "y": 65.5, - "width": 205, - "height": 200 - } - }, { - "id": "1659334098930", - "index": 1, - "audio_url": "http://staging-teach.cdn.ireadabc.com/16eb06a6beb9e4fa77c9b5d2d643ab29.mp3", - "itemType": "rect", - "fontScale": 1.61953125, - "imgScale": 1, - "imgSizeW": 0, - "imgSizeH": 0, - "mapScale": 1.61953125, - "dragDot": { - "x": 1036.5, - "y": 387.5 - }, - "gIdx": "0", - "labelText": "1", - "posX": 1212.5, - "posY": 643.5, - "skeJsonData": { - "url": "http://staging-teach.cdn.ireadabc.com/679fed26daa464819d553de6331b3552.json", - "name": "alien-pro.json" - }, - "texJsonData": { - "url": "http://staging-teach.cdn.ireadabc.com/65d8214c6b5c5d0496e17adb0408276a.atlas", - "name": "alien-pro.atlas" - }, - "texPngData": { - "url": "http://staging-teach.cdn.ireadabc.com/a319b372899239325b90bb4ec07b4970.png", - "name": "alien-pro.png" - }, - "animType": "spine", - "rect": { - "x": 375.56, - "y": 543.5, - "width": 200, - "height": 200 + enumerable: !1, + configurable: !0 + }), Object.defineProperty(a.prototype, "events", { + get: function get() { + var t, e, n, i; + if (this.__cache.events) return this.__cache.events; + var o = this.states, + a = new Set(this.ownEvents); + if (o) try { + for (var c = r(s(o)), u = c.next(); !u.done; u = c.next()) { + var h = o[u.value]; + if (h.states) try { + for (var f = (n = void 0, r(h.events)), l = f.next(); !l.done; l = f.next()) { + var d = l.value; + a.add("".concat(d)); + } + } catch (t) { + n = { + error: t + }; + } finally { + try { + l && !l.done && (i = f["return"]) && i.call(f); + } finally { + if (n) throw n.error; + } + } + } + } catch (e) { + t = { + error: e + }; + } finally { + try { + u && !u.done && (e = c["return"]) && e.call(c); + } finally { + if (t) throw t.error; + } } - }] - }; // return defaultData; - }, - preloadItem: function preloadItem() { - this.addPreloadImage(); - this.addPreloadAudio(); - this.addPreloadAnima(); - this.preload(); - }, - addPreloadImage: function addPreloadImage() { - this._imageResList.push({ - url: this.data.bgItem.url - }); - - for (var _iterator = _createForOfIteratorHelperLoose(this.data.hotZoneItemArr), _step; !(_step = _iterator()).done;) { - var q = _step.value; - - if (q.gIdx == '0') { - this._imageResList.push({ - url: q.texPngData.url - }); - } - - if (q.gIdx == '1') { - this._imageResList.push({ - url: q.texPngData.url - }); - } - - if (q.gIdx == '2') { - this._imageResList.push({ - url: q.pic_url - }); - } - } - }, - prepareAudioClip: function prepareAudioClip(url, key) { - var _this3 = this; + return this.__cache.events = Array.from(a); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(a.prototype, "ownEvents", { + get: function get() { + var t = new Set(this.transitions.filter(function (t) { + return !(!t.target && !t.actions.length && t.internal); + }).map(function (t) { + return t.eventType; + })); + return Array.from(t); + }, + enumerable: !1, + configurable: !0 + }), a.prototype.resolveTarget = function (t) { + var e = this; + if (void 0 !== t) return t.map(function (t) { + if (!A(t)) return t; + var n = t[0] === e.delimiter; + if (n && !e.parent) return e.getStateNodeByPath(t.slice(1)); + var r = n ? e.key + t : t; + if (!e.parent) return e.getStateNodeByPath(r); - if (url) { - cc.assetManager.loadRemote(url, function (err, audioClip) { - if (audioClip) { - _this3[key] = audioClip; + try { + return e.parent.getStateNodeByPath(r); + } catch (t) { + throw new Error("Invalid transition definition for state node '".concat(e.id, "':\n").concat(t.message)); } }); - } - }, - addPreloadAudio: function addPreloadAudio() { - this._audioResList.push({ - url: this.data.begin_audio - }); // this.prepareAudioClip(this.data.begin_audio1, 'begin_audio1') - // this._audioResList.push({ url: this.data.begin_audio2 }); - // this.prepareAudioClip(this.data.begin_audio2, 'begin_audio2') - - - this._audioResList.push({ - url: this.data.guide_audio - }); - - this._audioResList.push({ - url: this.data.playing_audio - }); - - if (this.data.wrong_audio) { - this._audioResList.push({ - url: this.data.wrong_audio - }); - - this.wrongAudio = this.data.wrong_audio; - } - - if (this.data.right_audio) { - this._audioResList.push({ - url: this.data.right_audio + }, a.prototype.formatTransition = function (t) { + var n = this, + r = function (t) { + if (void 0 !== t && "" !== t) return S(t); + }(t.target), + i = "internal" in t ? t.internal : !r || r.some(function (t) { + return A(t) && t[0] === n.delimiter; + }), + o = this.machine.options.guards, + a = this.resolveTarget(r), + s = _e(_e({}, t), { + actions: dt(S(t.actions)), + cond: O(t.cond, o), + target: a, + source: this, + internal: i, + eventType: t.event, + toJSON: function toJSON() { + return _e(_e({}, s), { + target: s.target ? s.target.map(function (t) { + return "#".concat(t.id); + }) : void 0, + source: "#".concat(n.id) + }); + } }); - this.rightAudio = this.data.right_audio; - } - - this._audioResList.push({ - url: this.data.wrong_audio1 - }); - - this._audioResList.push({ - url: this.data.wrong_audio2 - }); - - this._audioResList.push({ - url: this.data.end_audio - }); - - for (var _iterator2 = _createForOfIteratorHelperLoose(this.data.hotZoneItemArr), _step2; !(_step2 = _iterator2()).done;) { - var q = _step2.value; - - if (q.gIdx == '0') { - this._audioResList.push({ - url: q.audio_url + return s; + }, a.prototype.formatTransitions = function () { + var t, + e, + a, + c = this; + if (this.config.on) { + if (Array.isArray(this.config.on)) a = this.config.on;else { + var u = this.config.on, + h = u["*"], + f = void 0 === h ? [] : h, + l = n(u, ["*"]); + a = g(s(l).map(function (t) { + return D(t, l[t]); + }).concat(D("*", f))); + } + } else a = []; + var d = this.config.always ? D("", this.config.always) : [], + p = this.config.onDone ? D(String(Tt(this.id)), this.config.onDone) : [], + v = g(this.invoke.map(function (t) { + var e = []; + return t.onDone && e.push.apply(e, o([], i(D(String(Nt(t.id)), t.onDone)), !1)), t.onError && e.push.apply(e, o([], i(D(String(At(t.id)), t.onError)), !1)), e; + })), + y = this.after, + m = g(o(o(o(o([], i(p), !1), i(v), !1), i(a), !1), i(d), !1).map(function (t) { + return S(t).map(function (t) { + return c.formatTransition(t); }); - } - } - }, - debugPointer: function debugPointer() { - var boxDebugger = cc.find('Canvas/box-debugger'); + })); - if (!this.isDebug) { - boxDebugger.active = false; - return; - } + try { + for (var x = r(y), w = x.next(); !w.done; w = x.next()) { + var b = w.value; + m.push(b); + } + } catch (e) { + t = { + error: e + }; + } finally { + try { + w && !w.done && (e = x["return"]) && e.call(x); + } finally { + if (t) throw t.error; + } + } - if (!this.POINTER_NODE) { - this.POINTER_NODE = new cc.Node(); - this.POINTER_NODE.parent = boxDebugger; - this.POINTER_NODE.name = 'POINTER_NODE'; - this.POINTER_NODE.addComponent(cc.Graphics); - } + return m; + }, a; + }(); - var grap = this.POINTER_NODE.getComponent(cc.Graphics); - grap.clear(); - var ground = cc.find('Canvas/frame-border/ground'); - var baseW = ground.width, - baseH = ground.height; - var _this$_lastFingerPosi = this._lastFingerPosition.pos, - px = _this$_lastFingerPosi.x, - py = _this$_lastFingerPosi.y; - var x = baseW * px - baseW / 2; - var y = baseH - baseH * py - baseH / 2 - 16; - var pn = new cc.Node(); - grap.fillColor = cc.color(255, 0, 0); - grap.circle(x, y, 32); - grap.fill(); - grap.stroke(); + var Ft = { + deferEvents: !1 }, - debugGraphics: function debugGraphics() { - var boxDebugger = cc.find('Canvas/box-debugger'); - - if (!this.isDebug) { - boxDebugger.active = false; - return; + Ut = function () { + function t(t) { + this.processingEvent = !1, this.queue = [], this.initialized = !1, this.options = _e(_e({}, Ft), t); } - boxDebugger.active = true; - console.log('show debug graphics'); - var ground = cc.find('Canvas/frame-border/ground'); - var canvas = cc.find('Canvas'); - var baseW = ground.width, - baseH = ground.height; - var _this$data$bgItem$rec = this.data.bgItem.rect, - bgW = _this$data$bgItem$rec.width, - bgH = _this$data$bgItem$rec.height; - var scaleX = bgW / baseW; - var scaleY = bgH / baseH; - var added = false; - this.data.hotZoneItemArr.forEach(function (area) { - if (added) {// return + return t.prototype.initialize = function (t) { + if (this.initialized = !0, t) { + if (!this.options.deferEvents) return void this.schedule(t); + this.process(t); } - if (area.gIdx != '0') { - return; + this.flushEvents(); + }, t.prototype.schedule = function (t) { + if (this.initialized && !this.processingEvent) { + if (0 !== this.queue.length) throw new Error("Event queue should be empty when it is not processing events"); + this.process(t), this.flushEvents(); + } else this.queue.push(t); + }, t.prototype.clear = function () { + this.queue = []; + }, t.prototype.flushEvents = function () { + for (var t = this.queue.shift(); t;) { + this.process(t), t = this.queue.shift(); } + }, t.prototype.process = function (t) { + this.processingEvent = !0; - added = true; - var dn = new cc.Node(); - var lblNode = new cc.Node(); - lblNode.parent = dn; - var lbl = lblNode.addComponent(cc.Label); - lblNode.color = cc.color(0, 0, 0); - lbl.string = area.skeJsonData.name.substring(0, area.skeJsonData.name.length - 9); - dn.name = lbl.string; - dn.parent = boxDebugger; - dn.width = baseW; - dn.height = baseH; - var grap = dn.addComponent(cc.Graphics); - var r = (0, _util.RandomInt)(1, 255); - var g = (0, _util.RandomInt)(1, 255); - var b = (0, _util.RandomInt)(1, 255); - grap.fillColor = cc.color(r, g, b, 127); - var _area$rect = area.rect, - rx = _area$rect.x, - ry = _area$rect.y, - rw = _area$rect.width, - rh = _area$rect.height; - var w = rw / bgW * baseW; - var h = rh / bgH * baseH; - var x = rx / bgW * baseW - baseW / 2; - var y = baseH - ry / bgH * baseH - h - baseH / 2; // w *= scaleX - // h *= scaleY - // x *= scaleX - // y *= scaleY - // const p = boxDebugger.convertToNodeSpaceAR(cc.v2(x,y)); - // x = p.x; - // y = p.y; - - lblNode.x = x; - lblNode.y = y + h; // dn.scaleX = scaleX; - // dn.scaleY = scaleY; - // dn.scale = area.mapScale; // minScale; // this._mapScaleMax * area.mapScale; // ; - - console.log('[debug]', area.skeJsonData.name, x, y, w, h); - grap.fillRect(x, y, w, h); - grap.stroke(); - }); + try { + t(); + } catch (t) { + throw this.clear(), t; + } finally { + this.processingEvent = !1; + } + }, t; + }(), + Bt = new Map(), + Jt = 0, + qt = function qt() { + return "x:".concat(Jt++); }, - addPreloadAnima: function addPreloadAnima() {}, - preload: function preload() { - var _this4 = this; + $t = function $t(t, e) { + return Bt.set(t, e), t; + }, + Xt = function Xt(t) { + return Bt.get(t); + }, + Ht = function Ht(t) { + Bt["delete"](t); + }; - var preloadArr = this._imageResList.concat(this._audioResList).concat(this._animaResList); // console.log(preloadArr); + function Gt() { + return "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : void 0; + } + function Kt(t) { + if (Gt()) { + var e = function () { + var t = Gt(); + if (t && "__xstate__" in t) return t.__xstate__; + }(); - cc.assetManager.loadAny(preloadArr, null, function (f, t, item) {// console.log(f, t, item) - }, function (err, data) { - // console.log(err, data); - var ground = cc.find("Canvas/frame-border/ground"); - var groundBg = cc.find("Canvas/frame-border/ground/bg"); - groundBg.active = false; - var baseRect = _this4.data.bgItem.rect; - (0, _util.getSpriteFrimeByUrl)(_this4.data.bgItem.url, function (sf) { - var gs = groundBg.getComponent(cc.Sprite); - gs.spriteFrame = sf; - groundBg.active = true; - var dbCount = 0; - var finishDbCount = 0; + e && e.register(t); + } + } - for (var _iterator3 = _createForOfIteratorHelperLoose(_this4.data.hotZoneItemArr), _step3; !(_step3 = _iterator3()).done;) { - var block = _step3.value; + function Qt(t, n) { + void 0 === n && (n = {}); + var r, + i = t.initialState, + o = new Set(), + a = [], + s = !1, + c = (r = { + id: n.id, + send: function send(e) { + a.push(e), function () { + if (!s) { + for (s = !0; a.length > 0;) { + var e = a.shift(); + i = t.transition(i, e, u), o.forEach(function (t) { + return t.next(i); + }); + } - if (block.gIdx == '0' || block.gIdx == '1') { - dbCount++; + s = !1; } - } - - for (var _iterator4 = _createForOfIteratorHelperLoose(_this4.data.hotZoneItemArr), _step4; !(_step4 = _iterator4()).done;) { - var _block = _step4.value; - - if (_block.gIdx == '2') { - (function () { - var s1 = (ground.width / _block.imgSizeW + ground.height / _block.imgSizeH) / 2; - var node = new cc.Node(); - node.parent = ground; - var spr = node.addComponent(cc.Sprite); - (0, _util.getSpriteFrimeByUrl)(_block.pic_url, function (sf) { - spr.spriteFrame = sf; - node.scale = s1; - }); - })(); + }(); + }, + getSnapshot: function getSnapshot() { + return i; + }, + subscribe: function subscribe(t, e, n) { + var r = z(t, e, n); + return o.add(r), r.next(i), { + unsubscribe: function unsubscribe() { + o["delete"](r); } + }; + } + }, _e({ + subscribe: function subscribe() { + return { + unsubscribe: function unsubscribe() {} + }; + }, + id: "anonymous", + getSnapshot: function getSnapshot() {} + }, r)), + u = { + parent: n.parent, + self: c, + id: n.id || "anonymous", + observers: o + }; + return i = t.start ? t.start(u) : i, c; + } - if (_block.gIdx == '0' || _block.gIdx == '1') { - (function () { - var n = new cc.Node(); - n.scale = 0.25; - n.parent = ground; - n.active = false; + var Wt, + Yt = { + sync: !1, + autoForward: !1 + }; + (Wt = t.InterpreterStatus || (t.InterpreterStatus = {}))[Wt.NotStarted = 0] = "NotStarted", Wt[Wt.Running = 1] = "Running", Wt[Wt.Stopped = 2] = "Stopped"; - if (_block.animType == 'spine') { - var skeleton = n.addComponent(sp.Skeleton); - n.isSpine = true; - (0, _util.loadSpine)(skeleton, _block.texPngData.name, { - tex: _block.texPngData.url, - atlas: _block.texJsonData.url, - ske: _block.skeJsonData.url - }).then(function (_ref) { - var width = _ref.width, - height = _ref.height; - n.width = width; - n.height = height; - n.active = true; // db.playAnimation('null', 0); - // skeleton.setToSetupPose(); + var Zt = function () { + function n(r, i) { + var o = this; + void 0 === i && (i = n.defaultOptions), this.machine = r, this.scheduler = new Ut(), this.delayedEventsMap = {}, this.listeners = new Set(), this.contextListeners = new Set(), this.stopListeners = new Set(), this.doneListeners = new Set(), this.eventListeners = new Set(), this.sendListeners = new Set(), this.initialized = !1, this.status = t.InterpreterStatus.NotStarted, this.children = new Map(), this.forwardTo = new Set(), this.init = this.start, this.send = function (e, n) { + if (T(e)) return o.batch(e), o.state; + var r = L(V(e, n)); + if (o.status === t.InterpreterStatus.Stopped) return o.state; + if (o.status !== t.InterpreterStatus.Running && !o.options.deferEvents) throw new Error('Event "'.concat(r.name, '" was sent to uninitialized service "').concat(o.machine.id, '". Make sure .start() is called for this service, or set { deferEvents: true } in the service options.\nEvent: ').concat(JSON.stringify(r.data))); + return o.scheduler.schedule(function () { + o.forward(r); + var t = o.nextState(r); + o.update(t, r); + }), o._state; + }, this.sendTo = function (n, r) { + var i, + a = o.parent && (r === t.SpecialTargets.Parent || o.parent.id === r), + s = a ? o.parent : A(r) ? o.children.get(r) || Xt(r) : (i = r) && "function" == typeof i.send ? r : void 0; + if (s) "machine" in s ? s.send(_e(_e({}, n), { + name: n.name === at ? "".concat(At(o.id)) : n.name, + origin: o.sessionId + })) : s.send(n.data);else if (!a) throw new Error("Unable to send event to child '".concat(r, "' from service '").concat(o.id, "'.")); + }; - skeleton.setAnimation(0, 'enlarge', true); + var a = _e(_e({}, n.defaultOptions), i), + s = a.clock, + c = a.logger, + u = a.parent, + h = a.id, + f = void 0 !== h ? h : r.id; - _this4._allAnimationNodes.push(n); + this.id = f, this.logger = c, this.clock = s, this.parent = u, this.options = a, this.scheduler = new Ut({ + deferEvents: this.options.deferEvents + }), this.sessionId = qt(); + } - finishDbCount++; - console.log(finishDbCount, dbCount); + return Object.defineProperty(n.prototype, "initialState", { + get: function get() { + var t = this; + return this._initialState ? this._initialState : jt(this, function () { + return t._initialState = t.machine.initialState, t._initialState; + }); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(n.prototype, "state", { + get: function get() { + return this._state; + }, + enumerable: !1, + configurable: !0 + }), n.prototype.execute = function (t, e) { + var n, i; - if (finishDbCount == dbCount) { - _this4.loadEnd(); - } - })["catch"](function () { - finishDbCount++; - console.log(finishDbCount, dbCount); + try { + for (var o = r(t.actions), a = o.next(); !a.done; a = o.next()) { + var s = a.value; + this.exec(s, t, e); + } + } catch (t) { + n = { + error: t + }; + } finally { + try { + a && !a.done && (i = o["return"]) && i.call(o); + } finally { + if (n) throw n.error; + } + } + }, n.prototype.update = function (t, e) { + var n, + i, + o, + a, + s, + c, + u, + h, + f = this; + if (t._sessionid = this.sessionId, this._state = t, this.options.execute && this.execute(this.state), this.children.forEach(function (t) { + f.state.children[t.id] = t; + }), this.devTools && this.devTools.send(e.data, t), t.event) try { + for (var l = r(this.eventListeners), d = l.next(); !d.done; d = l.next()) { + (0, d.value)(t.event); + } + } catch (t) { + n = { + error: t + }; + } finally { + try { + d && !d.done && (i = l["return"]) && i.call(l); + } finally { + if (n) throw n.error; + } + } - if (finishDbCount == dbCount) { - _this4.loadEnd(); - } - }); - } else { - var db = n.addComponent(dragonBones.ArmatureDisplay); - (0, _util.loadDragonBones)(db, { - tex: _block.texPngData.url, - atlas: _block.texJsonData.url, - ske: _block.skeJsonData.url - }).then(function (_ref2) { - var width = _ref2.width, - height = _ref2.height; - n.width = width; - n.height = height; - n.active = true; - db.playAnimation('null', 0); + try { + for (var p = r(this.listeners), v = p.next(); !v.done; v = p.next()) { + (0, v.value)(t, t.event); + } + } catch (t) { + o = { + error: t + }; + } finally { + try { + v && !v.done && (a = p["return"]) && a.call(p); + } finally { + if (o) throw o.error; + } + } - _this4._allAnimationNodes.push(n); + try { + for (var y = r(this.contextListeners), g = y.next(); !g.done; g = y.next()) { + (0, g.value)(this.state.context, this.state.history ? this.state.history.context : void 0); + } + } catch (t) { + s = { + error: t + }; + } finally { + try { + g && !g.done && (c = y["return"]) && c.call(y); + } finally { + if (s) throw s.error; + } + } - finishDbCount++; - console.log(finishDbCount, dbCount); + var m = H(t.configuration || [], this.machine); - if (finishDbCount == dbCount) { - _this4.loadEnd(); - } - })["catch"](function () { - finishDbCount++; - console.log(finishDbCount, dbCount); - - if (finishDbCount == dbCount) { - _this4.loadEnd(); - } - }); - } - - if (_block.gIdx == '0') { - var rectInfo = { - node: n, - audio_url: _block.audio_url, - rect: { - x: _block.rect.x / baseRect.width, - y: _block.rect.y / baseRect.height, - width: _block.rect.width / baseRect.width, - height: _block.rect.height / baseRect.height - } - }; - - _this4._figurePointRectArray.push(rectInfo); // this.addRectNodeListener(block); - - - if (_block.labelText) { - var k = +_block.labelText * 1000; + if (this.state.configuration && m) { + var S = t.configuration.find(function (t) { + return "final" === t.type && t.parent === f.machine; + }), + w = S && S.doneData ? x(S.doneData, t.context, e) : void 0; - if (!isNaN(k)) { - _this4._hintsNodeList.push({ - node: n, - after: k - }); - } - } - } - })(); + try { + for (var b = r(this.doneListeners), _ = b.next(); !_.done; _ = b.next()) { + (0, _.value)(Nt(this.id, w)); + } + } catch (t) { + u = { + error: t + }; + } finally { + try { + _ && !_.done && (h = b["return"]) && h.call(b); + } finally { + if (u) throw u.error; } } - }); // console.log(this.data); - console.log('resource perload finish'); // <<<<<<< HEAD - // ======= - // if (window && window["air"]) { - // // cc.find('Canvas').opacity = 0; - // window.air.onCourseInScreen = (next) => { - // // cc.find('Canvas').opacity = 255; - // this.loadEnd(); - // next(); - // } - // window.air.hideAirClassLoading(); - // } else { - // this.loadEnd(); - // } - // >>>>>>> 2d461e1910571bcfc6ad4dc93c2cedafc20923ea + this.stop(); + } + }, n.prototype.onTransition = function (e) { + return this.listeners.add(e), this.status === t.InterpreterStatus.Running && e(this.state, this.state.event), this; + }, n.prototype.subscribe = function (e, n, r) { + var i, + o = this; + if (!e) return { + unsubscribe: function unsubscribe() {} + }; + var a = r; + return "function" == typeof e ? i = e : (i = e.next.bind(e), a = e.complete.bind(e)), this.listeners.add(i), this.status === t.InterpreterStatus.Running && i(this.state), a && this.onDone(a), { + unsubscribe: function unsubscribe() { + i && o.listeners["delete"](i), a && o.doneListeners["delete"](a); + } + }; + }, n.prototype.onEvent = function (t) { + return this.eventListeners.add(t), this; + }, n.prototype.onSend = function (t) { + return this.sendListeners.add(t), this; + }, n.prototype.onChange = function (t) { + return this.contextListeners.add(t), this; + }, n.prototype.onStop = function (t) { + return this.stopListeners.add(t), this; + }, n.prototype.onDone = function (t) { + return this.doneListeners.add(t), this; + }, n.prototype.off = function (t) { + return this.listeners["delete"](t), this.eventListeners["delete"](t), this.sendListeners["delete"](t), this.stopListeners["delete"](t), this.doneListeners["delete"](t), this.contextListeners["delete"](t), this; + }, n.prototype.start = function (e) { + var n = this; + if (this.status === t.InterpreterStatus.Running) return this; + $t(this.sessionId, this), this.initialized = !0, this.status = t.InterpreterStatus.Running; + var r = void 0 === e ? this.initialState : jt(this, function () { + return !A(t = e) && "value" in t && "history" in t ? n.machine.resolveState(e) : n.machine.resolveState(kt.from(e, n.machine.context)); + var t; + }); + return this.options.devTools && this.attachDev(), this.scheduler.initialize(function () { + n.update(r, ht); + }), this; + }, n.prototype.stop = function () { + var e, + n, + i, + o, + a, + c, + u, + h, + f, + l, + d = this; - cc.debug.setDisplayStats(false); - }); - }, - loadEnd: function loadEnd() { - if (window && window["air"] && window["air"].hideAirClassLoading) { - window["air"].hideAirClassLoading(); - } + try { + for (var p = r(this.listeners), v = p.next(); !v.done; v = p.next()) { + var y = v.value; + this.listeners["delete"](y); + } + } catch (t) { + e = { + error: t + }; + } finally { + try { + v && !v.done && (n = p["return"]) && n.call(p); + } finally { + if (e) throw e.error; + } + } - this.initData(); // this.initAudio(); - // this.initView(); + try { + for (var g = r(this.stopListeners), m = g.next(); !m.done; m = g.next()) { + (y = m.value)(), this.stopListeners["delete"](y); + } + } catch (t) { + i = { + error: t + }; + } finally { + try { + m && !m.done && (o = g["return"]) && o.call(g); + } finally { + if (i) throw i.error; + } + } - this.initBg(); // this.initListener(); + try { + for (var S = r(this.contextListeners), x = S.next(); !x.done; x = S.next()) { + y = x.value; + this.contextListeners["delete"](y); + } + } catch (t) { + a = { + error: t + }; + } finally { + try { + x && !x.done && (c = S["return"]) && c.call(S); + } finally { + if (a) throw a.error; + } + } - this.debugGraphics(); - this.createStateMachine(); - }, - _cantouch: null, - initData: function initData() { - // 所有全局å˜é‡ 默认都是null - this._cantouch = true; - }, - // audioBtn: null, - // initAudio() { - // const audioNode = cc.find('Canvas/res/audio'); - // const getAudioByResName = (resName) => { - // return audioNode.getChildByName(resName).getComponent(cc.AudioSource); - // } - // this.audioBtn = getAudioByResName('btn'); - // }, - // initView() { - // // this.initBg(); - // // this.initPic(); - // // this.initBtn(); - // this.initIcon(); - // }, - addRectNodeListener: function addRectNodeListener(data) { - var bg = cc.find("Canvas/frame-border/ground/bg"); - var rate = bg.scale * bg.width / this.data.bgItem.rect.width; - var rectNode = new cc.Node(); - rectNode.name = 'rect' + data.index; - bg.addChild(rectNode); - var ctx = rectNode.addComponent(cc.Graphics); // 红色矩形 + try { + for (var w = r(this.doneListeners), b = w.next(); !b.done; b = w.next()) { + y = b.value; + this.doneListeners["delete"](y); + } + } catch (t) { + u = { + error: t + }; + } finally { + try { + b && !b.done && (h = w["return"]) && h.call(w); + } finally { + if (u) throw u.error; + } + } - ctx.lineWidth = 4; - ctx.strokeColor = cc.Color.BLACK; - ctx.fillColor = cc.Color.WHITE.setA(100); - var scale = rate / bg.scaleY; - rectNode.width = data.rect.width * scale; - rectNode.height = data.rect.height * scale; - rectNode.x = -bg.width / 2 + data.rect.x * scale; - rectNode.y = bg.height / 2 - data.rect.height * scale - data.rect.y * scale; - rectNode.anchorX = rectNode.anchorY = 0; // if (pageData.bgItem.isShowDebugLine) { + if (!this.initialized) return this; + this.state.configuration.forEach(function (t) { + var e, n; - ctx.rect(0, 0, rectNode.width, rectNode.height); // } + try { + for (var i = r(t.definition.exit), o = i.next(); !o.done; o = i.next()) { + var a = o.value; + d.exec(a, d.state); + } + } catch (t) { + e = { + error: t + }; + } finally { + try { + o && !o.done && (n = i["return"]) && n.call(i); + } finally { + if (e) throw e.error; + } + } + }), this.children.forEach(function (t) { + N(t.stop) && t.stop(); + }); - ctx.stroke(); - ctx.fill(); - }, - initBg: function initBg() { - var bgNode = cc.find('Canvas/bg'); - bgNode.scale = this._mapScaleMax; - console.log('this._mapScaleMax', this._mapScaleMax); - }, - - /*initBtn() { - this.curPage = 0; - const bottomPart = cc.find('Canvas/bottomPart'); - bottomPart.zIndex = 5; // æé«˜å±‚级 - bottomPart.x = bottomPart.parent.width / 2; - bottomPart.y = -bottomPart.parent.height / 2; - const leftBtnNode = bottomPart.getChildByName('btn_left'); - //èŠ‚ç‚¹ä¸æ·»åŠ äº†button组件 则å¯ä»¥æ·»åŠ clickäº‹ä»¶ç›‘å¬ - leftBtnNode.on('click', () => { - if (!this._cantouch) { - return; - } - if (this.curPage == 0) { - return; - } - this.curPage = 0 - this.leftMove(); - // 游æˆç»“æŸæ—¶éœ€è¦è°ƒç”¨è¿™ä¸ªæ–¹æ³•é€šçŸ¥ç³»ç»Ÿä½œä¸šå®Œæˆ - onHomeworkFinish(); - cc.audioEngine.play(this.audioBtn.clip, false, 0.8) - }) - const rightBtnNode = bottomPart.getChildByName('btn_right'); - //èŠ‚ç‚¹ä¸æ·»åŠ äº†button组件 则å¯ä»¥æ·»åŠ clickäº‹ä»¶ç›‘å¬ - rightBtnNode.on('click', () => { - if (!this._cantouch) { - return; - } - if (this.curPage == 1) { - return; - } - this.curPage = 1 - this.rightMove(); - cc.audioEngine.play(this.audioBtn.clip, false, 0.5) - }) - },*/ - // update (dt) {}, - _timeoutIds: null, - _intervalIds: null, - // 生命周期 - onDestroy: function onDestroy() { - console.log('op15 onDestroy'); - - this._timeoutIds.forEach(function (id) { - clearTimeout(id); - }); - - this._intervalIds.forEach(function (id) { - clearInterval(id); - }); - - this.gameMachineService.stopChild(); - this.gameMachineService.stop(); - - if (window.courseware && window.courseware.closeOsmoFingerRead) { - if (this.isOpenedOsmoFingerRead) { - window.courseware.closeOsmoFingerRead(); + try { + for (var _ = r(s(this.delayedEventsMap)), E = _.next(); !E.done; E = _.next()) { + var T = E.value; + this.clock.clearTimeout(this.delayedEventsMap[T]); + } + } catch (t) { + f = { + error: t + }; + } finally { + try { + E && !E.done && (l = _["return"]) && l.call(_); + } finally { + if (f) throw f.error; + } } - } - } -}); - -cc._RF.pop(); - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0cy9PUDE1L3NjZW5lL09QMTUuanMiXSwibmFtZXMiOlsicHVyZSIsImFjdGlvbnMiLCJzZW5kIiwicmFpc2UiLCJzZW5kUGFyZW50IiwiY2MiLCJDbGFzcyIsIkNvbXBvbmVudCIsInByb3BlcnRpZXMiLCJyaWdodEF1ZGlvIiwidHlwZSIsIkF1ZGlvQ2xpcCIsIndyb25nQXVkaW8iLCJsb2dvQ2F0IiwiTm9kZSIsInBsYXlBbmkiLCJpZHgiLCJuYW1lIiwib3B0aW9ucyIsInRpbWVzIiwiY2IiLCJjYWxsYmFjayIsIm5vZGUiLCJfZmlndXJlUG9pbnRSZWN0QXJyYXkiLCJkcmFnb25EaXNwbGF5IiwiZ2V0Q29tcG9uZW50IiwiZHJhZ29uQm9uZXMiLCJBcm1hdHVyZURpc3BsYXkiLCJzdGF0ZSIsInBsYXlBbmltYXRpb24iLCJvbkxvYWQiLCJfdGltZW91dElkcyIsIl9pbnRlcnZhbElkcyIsImluaXRTY2VuZURhdGEiLCJpbml0U2l6ZSIsIndpbmRvdyIsImNjYyIsIl9pbWFnZVJlc0xpc3QiLCJfYXVkaW9SZXNMaXN0IiwiX2FuaW1hUmVzTGlzdCIsIl9sYXN0RmluZ2VyUG9zaXRpb24iLCJfaGludHNOb2RlTGlzdCIsIl9hbGxBbmltYXRpb25Ob2RlcyIsInBvcyIsImRpcnR5IiwiX2Rlc2lnblNpemUiLCJfZnJhbWVTaXplIiwiX21hcFNjYWxlTWluIiwiX21hcFNjYWxlTWF4IiwiX2NvY29zU2NhbGUiLCJzY3JlZW5fc2l6ZSIsInZpZXciLCJnZXRGcmFtZVNpemUiLCJ3aWR0aCIsImhlaWdodCIsImRlc2lnbl9zaXplIiwiQ2FudmFzIiwiaW5zdGFuY2UiLCJkZXNpZ25SZXNvbHV0aW9uIiwiZiIsImZpdEhlaWdodCIsImZpdFdpZHRoIiwiZnJhbWVTaXplIiwiZ2V0RGVzaWduUmVzb2x1dGlvblNpemUiLCJzeCIsIndpblNpemUiLCJzeSIsIk1hdGgiLCJtaW4iLCJtYXgiLCJjcmVhdGVTdGF0ZU1hY2hpbmUiLCJjaGVjayIsInRhcmdldCIsImNvbmQiLCJjdHgiLCJldnQiLCJjb25zb2xlIiwibG9nIiwicXVlc3Rpb25JbmRleCIsInF1ZXN0aW9uc0NvdW50IiwiUXVlc3Rpb25TdGF0ZSIsImlkIiwiaW5pdGlhbCIsInN0YXRlcyIsImhpbnQiLCJpbnZva2UiLCJzcmMiLCJldmVudCIsInF1ZXN0aW9uUGxheVRpbWVzIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJxdWVzdGlvbnMiLCJhdWRpb191cmwiLCJvbkRvbmUiLCJvbkVycm9yIiwiYW5zd2VyIiwiYWZ0ZXIiLCJjb250ZXh0Iiwib25SZWNlaXZlIiwic2V0SW50ZXJ2YWwiLCJyZWdpb24iLCJyZXN1bHQiLCJjaGVja0luUmVnaW9uIiwicmVjdCIsInB1c2giLCJjbGVhckludGVydmFsIiwib24iLCJSSUdIVCIsIldST05HIiwicmlnaHQiLCJhbiIsImFjdGl2ZSIsImRkTG9nb0NhdCIsIm9uY2UiLCJFdmVudE9iamVjdCIsIkNPTVBMRVRFIiwid3JvbmciLCJtYXhRdWVzdGlvblRyeVRpbWVzIiwid3JvbmdFZmZlY3QiLCJpbmNsdWRlcyIsImRhdGEiLCJpc1NwaW5lIiwic2tlbGV0b24iLCJzcCIsIlNrZWxldG9uIiwic2V0VG9TZXR1cFBvc2UiLCJzZXRUaW1lb3V0Iiwic2V0QW5pbWF0aW9uIiwiUXVlc3Rpb25zQXJyYXlTdGF0dXMiLCJwbGF5IiwibmV4dCIsIkNIRUNLIiwibGVuZ3RoIiwiYmVnaW4iLCJjb3Vyc2V3YXJlIiwib3Blbk9zbW9GaW5nZXJSZWFkIiwiaXNPcGVuZWRPc21vRmluZ2VyUmVhZCIsImJlZ2luX2F1ZGlvIiwiZ3VpZGUiLCJndWlkZV9hdWRpbyIsInBsYXlpbmciLCJlbnRyeSIsImFzc2V0TWFuYWdlciIsImxvYWRSZW1vdGUiLCJwbGF5aW5nX2F1ZGlvIiwiZXJyIiwiYXVkaW9DbGlwIiwiYXVkaW9FbmdpbmUiLCJwbGF5TXVzaWMiLCJmb3JFYWNoIiwiYmxvY2siLCJleGl0Iiwic3RvcE11c2ljIiwiTkVYVCIsImVuZCIsImNsb3NlT3Ntb0ZpbmdlclJlYWQiLCJlbmRfYXVkaW8iLCJpIiwidCIsImsiLCJfYXJtYXR1cmVLZXkiLCJhZGRFdmVudExpc3RlbmVyIiwiYmVnaW5fc2VwX3RpbWUiLCJnYW1lTWFjaGluZSIsImdhbWVNYWNoaW5lU2VydmljZSIsIm9uVHJhbnNpdGlvbiIsInN0YXJ0IiwiZ2V0RGF0YSIsImJpbmQiLCJnZXREZWZhdWx0RGF0YSIsIkpTT04iLCJwYXJzZSIsInN0cmluZ2lmeSIsInByZWxvYWRJdGVtIiwiYWlyIiwib3Ntb0ZpbmdlclJlYWRDYWxsYmFjayIsInJlc3VsdE9iaiIsImZpbmdlcl9wb3NfaW5fcGFnZSIsInAiLCJ4IiwieSIsImRlYnVnUG9pbnRlciIsImlzRGVidWciLCJyIiwidyIsImgiLCJmdW5jIiwibWlkZGxlTGF5ZXIiLCJmaW5kIiwibWlkZGxlTGF5ZXJDb21wb25lbnQiLCJhZGRQcmVsb2FkSW1hZ2UiLCJhZGRQcmVsb2FkQXVkaW8iLCJhZGRQcmVsb2FkQW5pbWEiLCJwcmVsb2FkIiwidXJsIiwiYmdJdGVtIiwiaG90Wm9uZUl0ZW1BcnIiLCJxIiwiZ0lkeCIsInRleFBuZ0RhdGEiLCJwaWNfdXJsIiwicHJlcGFyZUF1ZGlvQ2xpcCIsImtleSIsIndyb25nX2F1ZGlvIiwicmlnaHRfYXVkaW8iLCJ3cm9uZ19hdWRpbzEiLCJ3cm9uZ19hdWRpbzIiLCJib3hEZWJ1Z2dlciIsIlBPSU5URVJfTk9ERSIsInBhcmVudCIsImFkZENvbXBvbmVudCIsIkdyYXBoaWNzIiwiZ3JhcCIsImNsZWFyIiwiZ3JvdW5kIiwiYmFzZVciLCJiYXNlSCIsInB4IiwicHkiLCJwbiIsImZpbGxDb2xvciIsImNvbG9yIiwiY2lyY2xlIiwiZmlsbCIsInN0cm9rZSIsImRlYnVnR3JhcGhpY3MiLCJjYW52YXMiLCJiZ1ciLCJiZ0giLCJzY2FsZVgiLCJzY2FsZVkiLCJhZGRlZCIsImFyZWEiLCJkbiIsImxibE5vZGUiLCJsYmwiLCJMYWJlbCIsInN0cmluZyIsInNrZUpzb25EYXRhIiwic3Vic3RyaW5nIiwiZyIsImIiLCJyeCIsInJ5IiwicnciLCJyaCIsImZpbGxSZWN0IiwicHJlbG9hZEFyciIsImNvbmNhdCIsImxvYWRBbnkiLCJpdGVtIiwiZ3JvdW5kQmciLCJiYXNlUmVjdCIsInNmIiwiZ3MiLCJTcHJpdGUiLCJzcHJpdGVGcmFtZSIsImRiQ291bnQiLCJmaW5pc2hEYkNvdW50IiwiczEiLCJpbWdTaXplVyIsImltZ1NpemVIIiwic3ByIiwic2NhbGUiLCJuIiwiYW5pbVR5cGUiLCJ0ZXgiLCJhdGxhcyIsInRleEpzb25EYXRhIiwic2tlIiwidGhlbiIsImxvYWRFbmQiLCJkYiIsInJlY3RJbmZvIiwibGFiZWxUZXh0IiwiaXNOYU4iLCJkZWJ1ZyIsInNldERpc3BsYXlTdGF0cyIsImhpZGVBaXJDbGFzc0xvYWRpbmciLCJpbml0RGF0YSIsImluaXRCZyIsIl9jYW50b3VjaCIsImFkZFJlY3ROb2RlTGlzdGVuZXIiLCJiZyIsInJhdGUiLCJyZWN0Tm9kZSIsImluZGV4IiwiYWRkQ2hpbGQiLCJsaW5lV2lkdGgiLCJzdHJva2VDb2xvciIsIkNvbG9yIiwiQkxBQ0siLCJXSElURSIsInNldEEiLCJhbmNob3JYIiwiYW5jaG9yWSIsImJnTm9kZSIsIm9uRGVzdHJveSIsImNsZWFyVGltZW91dCIsInN0b3BDaGlsZCIsInN0b3AiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7SUFDUUEsT0FBb0NDLGdCQUFwQ0Q7SUFBT0UsT0FBNkJELGdCQUE3QkM7SUFBTUMsUUFBdUJGLGdCQUF2QkU7SUFBT0MsYUFBZ0JILGdCQUFoQkc7QUFHNUJDLEVBQUUsQ0FBQ0MsS0FBSCxDQUFTO0FBRVIsYUFBU0QsRUFBRSxDQUFDRSxTQUZKO0FBSVJDLEVBQUFBLFVBQVUsRUFBRTtBQUNYO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtB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RSxJQWpsQ0w7QUFrbENSQyxFQUFBQSxZQUFZLEVBQUUsSUFsbENOO0FBbWxDUjtBQUNBMFEsRUFBQUEsU0FwbENRLHVCQW9sQ0k7QUFDWDlOLElBQUFBLE9BQU8sQ0FBQ0MsR0FBUixDQUFZLGdCQUFaOztBQUNBLFNBQUs5QyxXQUFMLENBQWlCdUgsT0FBakIsQ0FBeUIsVUFBQXJFLEVBQUUsRUFBSTtBQUM5QjBOLE1BQUFBLFlBQVksQ0FBQzFOLEVBQUQsQ0FBWjtBQUNBLEtBRkQ7O0FBR0EsU0FBS2pELFlBQUwsQ0FBa0JzSCxPQUFsQixDQUEwQixVQUFBckUsRUFBRSxFQUFJO0FBQy9CeUIsTUFBQUEsYUFBYSxDQUFDekIsRUFBRCxDQUFiO0FBQ0EsS0FGRDs7QUFHQSxTQUFLb0Ysa0JBQUwsQ0FBd0J1SSxTQUF4QjtBQUNBLFNBQUt2SSxrQkFBTCxDQUF3QndJLElBQXhCOztBQUNBLFFBQUcxUSxNQUFNLENBQUNvRyxVQUFQLElBQXFCcEcsTUFBTSxDQUFDb0csVUFBUCxDQUFrQnFCLG1CQUExQyxFQUErRDtBQUM5RCxVQUFJLEtBQUtuQixzQkFBVCxFQUFpQztBQUNoQ3RHLFFBQUFBLE1BQU0sQ0FBQ29HLFVBQVAsQ0FBa0JxQixtQkFBbEI7QUFDQTtBQUNEO0FBQ0Q7QUFubUNPLENBQVQiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG9uSG9tZXdvcmtGaW5pc2gsIFJhbmRvbUludCwgcGxheUF1ZGlvQnlVcmwsIGxvYWREcmFnb25Cb25lcywgZ2V0U3ByaXRlRnJpbWVCeVVybCwgbG9hZFNwaW5lIH0gZnJvbSBcIi4uL3NjcmlwdC91dGlsXCI7XG5pbXBvcnQgeyBkZWZhdWx0RGF0YSB9IGZyb20gXCIuLi9zY3JpcHQvZGVmYXVsdERhdGFcIjtcbmltcG9ydCB7IGFzc2lnbiwgY3JlYXRlTWFjaGluZSwgaW50ZXJwcmV0LCBhY3Rpb25zLCBmb3J3YXJkVG8sIG1hdGNoZXNTdGF0ZSAgfSBmcm9tIFwiLi4vc2NyaXB0L3hzdGF0ZVwiO1xuY29uc3QgeyBwdXJlICwgc2VuZCwgcmFpc2UsIHNlbmRQYXJlbnQgIH0gPSBhY3Rpb25zO1xuXG5cbmNjLkNsYXNzKHtcblxuXHRleHRlbmRzOiBjYy5Db21wb25lbnQsXG5cblx0cHJvcGVydGllczoge1xuXHRcdC8qYW50OiB7XG5cdFx0XHRkZWZhdWx0OiBudWxsLFxuXHRcdFx0dHlwZTogY2MuTm9kZSxcblx0XHR9LFxuXHRcdGFwcGxlOiB7XG5cdFx0XHRkZWZhdWx0OiBudWxsLFxuXHRcdFx0dHlwZTogY2MuTm9kZSxcblx0XHR9LFxuXHRcdGJpcmQ6IHtcblx0XHRcdGRlZmF1bHQ6IG51bGwsXG5cdFx0XHR0eXBlOiBjYy5Ob2RlLFxuXHRcdH0sXG5cdFx0Y2FyOiB7XG5cdFx0XHRkZWZhdWx0OiBudWxsLFxuXHRcdFx0dHlwZTogY2MuTm9kZSxcblx0XHR9LFxuXHRcdGNhdDoge1xuXHRcdFx0ZGVmYXVsdDogbnVsbCxcblx0XHRcdHR5cGU6IGNjLk5vZGUsXG5cdFx0fSxcblx0XHRjb3c6IHtcblx0XHRcdGRlZmF1bHQ6IG51bGwsXG5cdFx0XHR0eXBlOiBjYy5Ob2RlLFxuXHRcdH0sXG5cdFx0ZHVjazoge1xuXHRcdFx0ZGVmYXVsdDogbnVsbCxcblx0XHRcdHR5cGU6IGNjLk5vZGUsXG5cdFx0fSxcblx0XHRlZ2c6IHtcblx0XHRcdGRlZmF1bHQ6IG51bGwsXG5cdFx0XHR0eXBlOiBjYy5Ob2RlLFxuXHRcdH0sXG5cdFx0ZmFybWVyOiB7XG5cdFx0XHRkZWZhdWx0OiBudWxsLFxuXHRcdFx0dHlwZTogY2MuTm9kZSxcblx0XHR9LFxuXHRcdGZpc2g6IHtcblx0XHRcdGRlZmF1bHQ6IG51bGwsXG5cdFx0XHR0eXBlOiBjYy5Ob2RlLFxuXHRcdH0sXG5cdFx0Z2lybDoge1xuXHRcdFx0ZGVmYXVsdDogbnVsbCxcblx0XHRcdHR5cGU6IGNjLk5vZGUsXG5cdFx0fSxcblx0XHRoZW46IHtcblx0XHRcdGRlZmF1bHQ6IG51bGwsXG5cdFx0XHR0eXBlOiBjYy5Ob2RlLFxuXHRcdH0sXG5cdFx0aG91c2U6IHtcblx0XHRcdGRlZmF1bHQ6IG51bGwsXG5cdFx0XHR0eXBlOiBjYy5Ob2RlLFxuXHRcdH0sKi9cblx0XHRyaWdodEF1ZGlvOiB7XG5cdFx0XHRkZWZhdWx0OiBudWxsLFxuXHRcdFx0dHlwZTogY2MuQXVkaW9DbGlwLFxuXHRcdH0sXG5cdFx0d3JvbmdBdWRpbzoge1xuXHRcdFx0ZGVmYXVsdDogbnVsbCxcblx0XHRcdHR5cGU6IGNjLkF1ZGlvQ2xpcCxcblx0XHR9LFxuXHRcdGxvZ29DYXQ6IHtcblx0XHRcdGRlZmF1bHQ6IG51bGwsXG5cdFx0XHR0eXBlOiBjYy5Ob2RlXG5cdFx0fVxuXG5cdH0sXG5cblx0cGxheUFuaShpZHgsIG5hbWUsIG9wdGlvbnMpIHtcblx0XHRjb25zdCB0aW1lcyA9IChvcHRpb25zICYmIG9wdGlvbnMudGltZXMpIHx8IDE7XG5cdFx0Y29uc3QgY2IgPSAob3B0aW9ucyAmJiBvcHRpb25zLmNhbGxiYWNrKSB8fCBudWxsO1xuXHRcdC8vIGNvbnN0IGNhdCA9IGNjLmZpbmQoYENhbnZhcy9mcmFtZS1ib3JkZXIvZ3JvdW5kLyR7bm9kZX1gKTtcblx0XHRjb25zdCBub2RlID0gdGhpcy5fZmlndXJlUG9pbnRSZWN0QXJyYXlbaWR4XS5ub2RlXG5cdFx0dmFyIGRyYWdvbkRpc3BsYXkgPSBub2RlLmdldENvbXBvbmVudChkcmFnb25Cb25lcy5Bcm1hdHVyZURpc3BsYXkpO1xuXG5cdFx0Y29uc3Qgc3RhdGUgPSBkcmFnb25EaXNwbGF5LnBsYXlBbmltYXRpb24obmFtZSwgdGltZXMpO1xuXHRcdC8vIGRyYWdvbkRpc3BsYXkuYWRkRXZlbnRMaXN0ZW5lcihkcmFnb25Cb25lcy5FdmVudE9iamVjdC5DT01QTEVURSwgKGV2ZW50KSA9PiB7XG5cdFx0Ly8gXHQvL1RPRE8g6L+Z6YeM5YaZ6Kem5Y+R5LqL5Lu2XG5cdFx0Ly8gXHQvL2V2ZW50Lm5hbWXkuLrkuovku7blkI3np7Bcblx0XHQvLyBcdGNvbnNvbGUubG9nKGV2ZW50Lm5hbWUpXG5cdFx0Ly8gfSwgdGhpcyk7XG5cdFx0Ly8gYW5pbWF0aW9uRGlzcGxheS5hZGRFdmVudExpc3RlbmVyKGRyYWdvbkJvbmVzLkV2ZW50T2JqZWN0LkNPTVBMRVRFLCBjb21wbGV0ZUNhbGxiYWNrKTtcblx0XHRyZXR1cm4gc3RhdGU7XG5cdH0sXG5cdC8vIOeUn+WRveWRqOacnyBvbkxvYWRcblx0b25Mb2FkKCkge1xuXHRcdHRoaXMuX3RpbWVvdXRJZHMgPSBbXTtcblx0XHR0aGlzLl9pbnRlcnZhbElkcyA9IFtdO1xuXHRcdHRoaXMuaW5pdFNjZW5lRGF0YSgpO1xuXHRcdHRoaXMuaW5pdFNpemUoKTtcblx0XHR3aW5kb3cuY2NjID0gdGhpcztcblx0fSxcblxuXHRfaW1hZ2VSZXNMaXN0OiBudWxsLFxuXHRfYXVkaW9SZXNMaXN0OiBudWxsLFxuXHRfYW5pbWFSZXNMaXN0OiBudWxsLFxuXG5cdF9sYXN0RmluZ2VyUG9zaXRpb246IG51bGwsXG5cblx0X2hpbnRzTm9kZUxpc3QgOiBudWxsLFxuXHRfZmlndXJlUG9pbnRSZWN0QXJyYXk6IG51bGwsXG5cblx0X2FsbEFuaW1hdGlvbk5vZGVzOiBudWxsLFxuXG5cdGluaXRTY2VuZURhdGEoKSB7XG5cdFx0dGhpcy5faW1hZ2VSZXNMaXN0ID0gW107XG5cdFx0dGhpcy5fYXVkaW9SZXNMaXN0ID0gW107XG5cdFx0dGhpcy5fYW5pbWFSZXNMaXN0ID0gW107XG5cblx0XHR0aGlzLl9hbGxBbmltYXRpb25Ob2RlcyA9IFtdO1xuXHRcdHRoaXMuX2hpbnRzTm9kZUxpc3QgPSBbXTtcblx0XHR0aGlzLl9sYXN0RmluZ2VyUG9zaXRpb249IHtcblx0XHRcdHBvczogbnVsbCxcblx0XHRcdGRpcnR5OiBmYWxzZVxuXHRcdH07XG5cdFx0dGhpcy5fZmlndXJlUG9pbnRSZWN0QXJyYXkgPSBbXTtcblx0fSxcblxuXHRfZGVzaWduU2l6ZTogbnVsbCwgIC8vIOiuvuiuoeWIhui+qOeOh1xuXHRfZnJhbWVTaXplOiBudWxsLCAgLy8g5bGP5bmV5YiG6L6o546HXG5cdF9tYXBTY2FsZU1pbjogbnVsbCwgIC8vIOWcuuaZr+S4reW4uOeUqOe8qeaUvu+8iOWPluWkp+WAvO+8iVxuXHRfbWFwU2NhbGVNYXg6IG51bGwsICAvLyDlnLrmma/kuK3luLjnlKjnvKnmlL7vvIjlj5blsI/lgLzvvIlcblx0X2NvY29zU2NhbGU6IG51bGwsICAvLyBjb2NvcyDoh6rnvKnmlL4g77yI6L6D5bCR55So5Yiw77yJXG5cdFxuXHRpbml0U2l6ZSgpIHtcblx0XHQvLyDms6jmhI9jYy53aW5TaXpl5Y+q5pyJ5Zyo6YCC6YWN5ZCOKOS/ruaUuWZpdEhlaWdodC9maXRXaWR0aOWQjinmiY3og73ojrflj5bliLDmraPnoa7nmoTlgLws5Zug5q2k5L2/55SoY2MuZ2V0RnJhbWVTaXplKCnmnaXojrflj5bliJ3lp4vnmoTlsY/luZXlpKflsI9cblx0XHRsZXQgc2NyZWVuX3NpemUgPSBjYy52aWV3LmdldEZyYW1lU2l6ZSgpLndpZHRoIC8gY2Mudmlldy5nZXRGcmFtZVNpemUoKS5oZWlnaHRcblx0XHRsZXQgZGVzaWduX3NpemUgPSBjYy5DYW52YXMuaW5zdGFuY2UuZGVzaWduUmVzb2x1dGlvbi53aWR0aCAvIGNjLkNhbnZhcy5pbnN0YW5jZS5kZXNpZ25SZXNvbHV0aW9uLmhlaWdodFxuXHRcdGxldCBmID0gc2NyZWVuX3NpemUgPj0gZGVzaWduX3NpemVcblx0XHRjYy5DYW52YXMuaW5zdGFuY2UuZml0SGVpZ2h0ID0gZlxuXHRcdGNjLkNhbnZhcy5pbnN0YW5jZS5maXRXaWR0aCA9ICFmXG5cblx0XHRjb25zdCBmcmFtZVNpemUgPSBjYy52aWV3LmdldEZyYW1lU2l6ZSgpO1xuXHRcdHRoaXMuX2ZyYW1lU2l6ZSA9IGZyYW1lU2l6ZTtcblxuXHRcdHRoaXMuX2Rlc2lnblNpemUgPSBjYy52aWV3LmdldERlc2lnblJlc29sdXRpb25TaXplKCk7XG5cblx0XHRsZXQgc3ggPSBjYy53aW5TaXplLndpZHRoIC8gZnJhbWVTaXplLndpZHRoO1xuXHRcdGxldCBzeSA9IGNjLndpblNpemUuaGVpZ2h0IC8gZnJhbWVTaXplLmhlaWdodDtcblx0XHR0aGlzLl9jb2Nvc1NjYWxlID0gTWF0aC5taW4oc3gsIHN5KTtcblxuXHRcdHN4ID0gZnJhbWVTaXplLndpZHRoIC8gdGhpcy5fZGVzaWduU2l6ZS53aWR0aDtcblx0XHRzeSA9IGZyYW1lU2l6ZS5oZWlnaHQgLyB0aGlzLl9kZXNpZ25TaXplLmhlaWdodDtcblx0XHR0aGlzLl9tYXBTY2FsZU1pbiA9IE1hdGgubWluKHN4LCBzeSkgKiB0aGlzLl9jb2Nvc1NjYWxlO1xuXHRcdHRoaXMuX21hcFNjYWxlTWF4ID0gTWF0aC5tYXgoc3gsIHN5KSAqIHRoaXMuX2NvY29zU2NhbGU7XG5cdH0sXG5cdGNyZWF0ZVN0YXRlTWFjaGluZSgpe1xuXHRcdGNvbnN0IGNoZWNrID0gIFtcblx0XHRcdFx0XHRcdFx0eyB0YXJnZXQ6ICcjZ2FtZS5lbmQnLCBjb25kOiAoY3R4LCBldnQpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnW2Fuc3dlciBORVhUXSBjaGVjayBpZiBlbmQnLCBjdHgucXVlc3Rpb25JbmRleCA+PSBjdHgucXVlc3Rpb25zQ291bnQgLSAxKTtcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gY3R4LnF1ZXN0aW9uSW5kZXggPj0gY3R4LnF1ZXN0aW9uc0NvdW50IC0xXG5cblx0XHRcdFx0XHRcdFx0fSB9LFxuICAgICAgICBcdFx0XHRcdFx0eyB0YXJnZXQ6ICdoaW50JyB9IC8vIHJlZW50ZXIgJ2hpbnQnIHN0YXRlXG5cdFx0XHRcdFx0XHRdXG5cdFx0Y29uc3QgUXVlc3Rpb25TdGF0ZSA9IHtcblx0XHRcdGlkOiAncXVlc3Rpb24nLFxuXHRcdFx0aW5pdGlhbDogJ2hpbnQnLFxuXHRcdFx0c3RhdGVzOiB7XG5cdFx0XHRcdGhpbnQ6IHtcblx0XHRcdFx0XHRpbnZva2U6IHtcblx0XHRcdFx0XHRcdHNyYzogKGN0eCwgZXZlbnQpID0+IHtcblx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coYFtoaW50XSBwbGF5IHF1ZXN0aW9uICR7Y3R4LnF1ZXN0aW9uSW5kZXh9OiAke2N0eC5xdWVzdGlvblBsYXlUaW1lcyB9IGF1ZGlvYCk7XG5cdFx0XHRcdFx0XHRcdGN0eC5xdWVzdGlvblBsYXlUaW1lcyArPSAxO1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUscmVqZWN0KSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0cGxheUF1ZGlvQnlVcmwoY3R4LnF1ZXN0aW9uc1tjdHgucXVlc3Rpb25JbmRleF0uYXVkaW9fdXJsLCAoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnaGludCBmaW5pc2gnKTtcblx0XHRcdFx0XHRcdFx0XHRcdHJlc29sdmUoKVxuXHRcdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0b25Eb25lOiAnYW5zd2VyJyxcblx0XHRcdFx0XHRcdG9uRXJyb3I6ICdhbnN3ZXInXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LFxuXHRcdFx0XHRhbnN3ZXI6IHtcblx0XHRcdFx0XHRhZnRlcjoge1xuXHRcdFx0XHRcdFx0ODAwMDogW1xuICAgICAgICBcdFx0XHRcdFx0eyBcblx0XHRcdFx0XHRcdFx0XHR0YXJnZXQ6ICd3cm9uZycsXG5cdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdH0gLy8gcmVlbnRlciAnaGludCcgc3RhdGVcblx0XHRcdFx0XHRcdF1cblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0aW52b2tlOiB7XG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdHNyYzogKGNvbnRleHQsIGV2ZW50KSA9PiAoY2FsbGJhY2ssIG9uUmVjZWl2ZSkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ1thbnN3ZXJdIHRoaW5raW5nIGFuZCBwbGF5aW5nJyk7XG5cdFx0XHRcdFx0XHRcdC8vIGNoZWNrIGV2ZXJ5IHNlY29uZFxuXHRcdFx0XHRcdFx0XHRjb25zdCBpZCA9IHNldEludGVydmFsKCgpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhcImFhYWFhYVwiKTtcblx0XHRcdFx0XHRcdFx0XHRpZiAoIXRoaXMuX2xhc3RGaW5nZXJQb3NpdGlvbi5kaXJ0eSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRjb25zdCByZWdpb24gPSBjb250ZXh0LnF1ZXN0aW9uc1tjb250ZXh0LnF1ZXN0aW9uSW5kZXhdO1xuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IHJlc3VsdCA9IHRoaXMuY2hlY2tJblJlZ2lvbihyZWdpb24ucmVjdCk7XG5cdFx0XHRcdFx0XHRcdFx0aWYgKHJlc3VsdCA9PT0gbnVsbCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnW0dlbmlzZSBKU10gY2hlY2tJblJlZ2lvbicgKyByZXN1bHQpXG5cdFx0XHRcdFx0XHRcdFx0aWYgKHJlc3VsdCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0Y2FsbGJhY2soJ1JJR0hUJylcblx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdFx0Y2FsbGJhY2soJ1dST05HJylcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH0sIDMwMCk7XG5cdFx0XHRcdFx0XHRcdHRoaXMuX2ludGVydmFsSWRzLnB1c2goaWQpO1xuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHQvLyBQZXJmb3JtIGNsZWFudXBcblx0XHRcdFx0XHRcdFx0cmV0dXJuICgpID0+IGNsZWFySW50ZXJ2YWwoaWQpO1xuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0b246IHtcblx0XHRcdFx0XHRcdFJJR0hUOiB7XG5cdFx0XHRcdFx0XHRcdHRhcmdldDogJ3JpZ2h0Jyxcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRXUk9ORzoge1xuXHRcdFx0XHRcdFx0XHR0YXJnZXQ6ICd3cm9uZycsXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LFxuXHRcdFx0XHRcblx0XHRcdFx0cmlnaHQ6IHtcblx0XHRcdFx0XHRpbnZva2U6IHtcblx0XHRcdFx0XHRcdHNyYzogKGNvbnRleHQsIGV2ZW50KSA9PiB7XG5cdFx0XHRcdFx0XHRcdHRoaXMuX2xhc3RGaW5nZXJQb3NpdGlvbi5wb3MgPSBudWxsO1xuXHRcdFx0XHRcdFx0XHR0aGlzLl9sYXN0RmluZ2VyUG9zaXRpb24uZGlydHkgPSBmYWxzZTtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnYW5zd2VyIHJpZ2h0Jyk7XG5cdFx0XHRcdFx0XHRcdFx0Ly8gdGhpcy5wbGF5QW5pKGNvbnRleHQucXVlc3Rpb25JbmRleCwgJ25vcm1hbCcpXG5cdFx0XHRcdFx0XHRcdFx0Y29uc3QgYW4gPSBjb250ZXh0LnF1ZXN0aW9uc1tjb250ZXh0LnF1ZXN0aW9uSW5kZXhdLm5vZGU7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ2luIHJpZ2h0ICcgKyAodHlwZW9mIGFuKSlcblx0XHRcdFx0XHRcdFx0XHRhbi5hY3RpdmUgPSB0cnVlO1xuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IGRyYWdvbkRpc3BsYXkgPSBhbi5nZXRDb21wb25lbnQoZHJhZ29uQm9uZXMuQXJtYXR1cmVEaXNwbGF5KTtcblx0XHRcdFx0XHRcdFx0XHRkcmFnb25EaXNwbGF5LnBsYXlBbmltYXRpb24oJ25vcm1hbCcsIDApO1xuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IGRkTG9nb0NhdCA9IHRoaXMubG9nb0NhdC5nZXRDb21wb25lbnQoZHJhZ29uQm9uZXMuQXJtYXR1cmVEaXNwbGF5KVxuXHRcdFx0XHRcdFx0XHRcdGRkTG9nb0NhdC5wbGF5QW5pbWF0aW9uKCdyaWdodCcsIDEpXG5cdFx0XHRcdFx0XHRcdFx0ZGRMb2dvQ2F0Lm9uY2UoZHJhZ29uQm9uZXMuRXZlbnRPYmplY3QuQ09NUExFVEUsIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5sb2dvQ2F0LmdldENvbXBvbmVudChkcmFnb25Cb25lcy5Bcm1hdHVyZURpc3BsYXkpLnBsYXlBbmltYXRpb24oJ25vcm1hbCcsIDApXG5cdFx0XHRcdFx0XHRcdFx0fSwgdGhpcylcblxuXHRcdFx0XHRcdFx0XHRcdHBsYXlBdWRpb0J5VXJsKHRoaXMucmlnaHRBdWRpbywgKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZSgpXG5cdFx0XHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0b25Eb25lOiB7XG5cdFx0XHRcdFx0XHRcdHRhcmdldDogJyNRdWVzdGlvbnNBcnJheS5uZXh0Jyxcblx0XHRcdFx0XHRcdFx0YWN0aW9uczogcmFpc2UoJ0NIRUNLJylcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRvbkVycm9yOiB7XG5cdFx0XHRcdFx0XHRcdHRhcmdldDogJyNRdWVzdGlvbnNBcnJheS5uZXh0Jyxcblx0XHRcdFx0XHRcdFx0YWN0aW9uczogcmFpc2UoJ0NIRUNLJylcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0sXG5cdFx0XHRcdHdyb25nOntcblx0XHRcdFx0XHRpbnZva2U6IHtcblx0XHRcdFx0XHRcdHNyYzogKGNvbnRleHQsIGV2ZW50KSA9PiB7XG5cdFx0XHRcdFx0XHRcdHRoaXMuX2xhc3RGaW5nZXJQb3NpdGlvbi5wb3MgPSBudWxsO1xuXHRcdFx0XHRcdFx0XHR0aGlzLl9sYXN0RmluZ2VyUG9zaXRpb24uZGlydHkgPSBmYWxzZTtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnYW5zd2VyIHdyb25nJywgY29udGV4dC5xdWVzdGlvbkluZGV4LCBjb250ZXh0LnF1ZXN0aW9uUGxheVRpbWVzICwgY29udGV4dC5tYXhRdWVzdGlvblRyeVRpbWVzKTtcblx0XHRcdFx0XHRcdFx0XHRjb25zdCBkZExvZ29DYXQgPSB0aGlzLmxvZ29DYXQuZ2V0Q29tcG9uZW50KGRyYWdvbkJvbmVzLkFybWF0dXJlRGlzcGxheSlcblx0XHRcdFx0XHRcdFx0XHRkZExvZ29DYXQucGxheUFuaW1hdGlvbignd3JvbmcnLCAxKVxuXHRcdFx0XHRcdFx0XHRcdGRkTG9nb0NhdC5vbmNlKGRyYWdvbkJvbmVzLkV2ZW50T2JqZWN0LkNPTVBMRVRFLCBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMubG9nb0NhdC5nZXRDb21wb25lbnQoZHJhZ29uQm9uZXMuQXJtYXR1cmVEaXNwbGF5KS5wbGF5QW5pbWF0aW9uKCdub3JtYWwnLCAwKVxuXHRcdFx0XHRcdFx0XHRcdH0sIHRoaXMpO1xuXHRcdFx0XHRcdFx0XHRcdGxldCB3cm9uZ0VmZmVjdCA9IHRoaXMud3JvbmdBdWRpbztcblx0XHRcdFx0XHRcdFx0XHQvLyDnrKzkuIDlkoznrKzkuozpopjnmoTmj5DnpLrpn7Ncblx0XHRcdFx0XHRcdFx0XHRpZiAoWzAsIDFdLmluY2x1ZGVzKGNvbnRleHQucXVlc3Rpb25JbmRleCkpIHtcblx0XHRcdFx0XHRcdFx0XHRcdHdyb25nRWZmZWN0ID0gdGhpcy5kYXRhW2B3cm9uZ19hdWRpbyR7Y29udGV4dC5xdWVzdGlvblBsYXlUaW1lc31gXVxuXHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHQvLyDpnZ7nrKzkuIDlkoznrKzkuozpopjvvIzlubbkuJTlgZrnrKzkuozpgY3nmoTmj5DnpLrpn7Ncblx0XHRcdFx0XHRcdFx0XHRcdGlmIChjb250ZXh0LnF1ZXN0aW9uUGxheVRpbWVzID09IDIpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0d3JvbmdFZmZlY3QgPSB0aGlzLmRhdGFbYHdyb25nX2F1ZGlvJHtjb250ZXh0LnF1ZXN0aW9uUGxheVRpbWVzfWBdXG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0fVxuXG5cblx0XHRcdFx0XHRcdFx0XHRpZiAoY29udGV4dC5xdWVzdGlvblBsYXlUaW1lcyA+PSBjb250ZXh0Lm1heFF1ZXN0aW9uVHJ5VGltZXMpIHtcblx0XHRcdFx0XHRcdFx0XHRcdGNvbnN0IGFuID0gY29udGV4dC5xdWVzdGlvbnNbY29udGV4dC5xdWVzdGlvbkluZGV4XS5ub2RlO1xuXHRcdFx0XHRcdFx0XHRcdFx0YW4uYWN0aXZlID0gdHJ1ZTtcblxuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKGFuLmlzU3BpbmUpIHtcblxuXHRcdFx0XHRcdFx0XHRcdFx0XHRjb25zdCBza2VsZXRvbiA9IGFuLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbik7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHNrZWxldG9uLnNldFRvU2V0dXBQb3NlKCk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHNrZWxldG9uLnNldEFuaW1hdGlvbigwLCAnbm9ybWFsJywgdHJ1ZSk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdH0sIDEpO1xuXHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGNvbnN0IGRyYWdvbkRpc3BsYXkgPSBhbi5nZXRDb21wb25lbnQoZHJhZ29uQm9uZXMuQXJtYXR1cmVEaXNwbGF5KTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0ZHJhZ29uRGlzcGxheS5wbGF5QW5pbWF0aW9uKCdub3JtYWwnLCAwKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ3Nob3cgYW5pbWF0aW9uJywgYW4uYWN0aXZlKTtcblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0cGxheUF1ZGlvQnlVcmwod3JvbmdFZmZlY3QsICgpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcdGlmIChjb250ZXh0LnF1ZXN0aW9uUGxheVRpbWVzID49IGNvbnRleHQubWF4UXVlc3Rpb25UcnlUaW1lcykge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBjb25zdCBhbiA9IGNvbnRleHQucXVlc3Rpb25zW2NvbnRleHQucXVlc3Rpb25JbmRleF0ubm9kZTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gYW4uYWN0aXZlID0gdHJ1ZTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gY29uc3QgZHJhZ29uRGlzcGxheSA9IGFuLmdldENvbXBvbmVudChkcmFnb25Cb25lcy5Bcm1hdHVyZURpc3BsYXkpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBkcmFnb25EaXNwbGF5LnBsYXlBbmltYXRpb24oJ25vcm1hbCcsIDApO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZygnc2hvdyBhbmltYXRpb24nLCBhbi5hY3RpdmUpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRyZWplY3QoKVxuXHRcdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZSgpXG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0b25Eb25lOiB7XG5cdFx0XHRcdFx0XHRcdHRhcmdldDogJ2hpbnQnLFxuXHRcdFx0XHRcdFx0XHQvLyBhY3Rpb25zOiByYWlzZSgnQ0hFQ0snKVxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdG9uRXJyb3I6IHtcblx0XHRcdFx0XHRcdFx0dGFyZ2V0OiAnI1F1ZXN0aW9uc0FycmF5Lm5leHQnLFxuXHRcdFx0XHRcdFx0XHRhY3Rpb25zOiByYWlzZSgnQ0hFQ0snKVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSxcblx0XHRcdH1cblx0XHR9XG5cdFx0Y29uc3QgUXVlc3Rpb25zQXJyYXlTdGF0dXMgPSB7XG5cdFx0XHRpZDogJ1F1ZXN0aW9uc0FycmF5Jyxcblx0XHRcdGluaXRpYWw6ICdwbGF5Jyxcblx0XHRcdHN0YXRlczoge1xuXHRcdFx0XHRwbGF5OiB7XG5cdFx0XHRcdFx0Li4uUXVlc3Rpb25TdGF0ZVxuXHRcdFx0XHR9LFxuXHRcdFx0XHRuZXh0OiB7XG5cdFx0XHRcdFx0b246IHtcblx0XHRcdFx0XHRcdENIRUNLOiBbXG5cdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHR0YXJnZXQ6ICcjZ2FtZS5lbmQnLFxuXHRcdFx0XHRcdFx0XHRcdGNvbmQ6IChjdHgsIGV2dCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0Y3R4LnF1ZXN0aW9uSW5kZXggKz0gMTtcblx0XHRcdFx0XHRcdFx0XHRcdGN0eC5xdWVzdGlvblBsYXlUaW1lcyA9IDBcblx0XHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCcjZ2FtZS5lbmQnLCAgY3R4LnF1ZXN0aW9uSW5kZXggPj0gY3R4LnF1ZXN0aW9uc0NvdW50IClcblx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiBjdHgucXVlc3Rpb25JbmRleCA+PSBjdHgucXVlc3Rpb25zQ291bnRcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdHt0YXJnZXQ6ICdwbGF5J31cblx0XHRcdFx0XHRcdF1cblx0XHRcdFx0XHRcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRcblx0XHRjb25zdCBzdGF0ZSA9IHtcblx0XHRcdGlkOiAnZ2FtZScsXG5cdFx0XHRpbml0aWFsOiAnYmVnaW4nLFxuXHRcdFx0Y29udGV4dDoge1xuXHRcdFx0XHRxdWVzdGlvbkluZGV4OiAwLFxuXHRcdFx0XHRxdWVzdGlvblBsYXlUaW1lczogMCxcblx0XHRcdFx0bWF4UXVlc3Rpb25UcnlUaW1lczogMixcblx0XHRcdFx0cXVlc3Rpb25zQ291bnQ6IHRoaXMuX2ZpZ3VyZVBvaW50UmVjdEFycmF5Lmxlbmd0aCxcblx0XHRcdFx0cXVlc3Rpb25zOiB0aGlzLl9maWd1cmVQb2ludFJlY3RBcnJheSxcblx0XHRcdH0sXG5cdFx0XHRzdGF0ZXM6IHtcblx0XHRcdFx0YmVnaW46IHtcblx0XHRcdFx0XHRpbnZva2U6IHtcblx0XHRcdFx0XHRcdHNyYzogKGN0eCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnZ2FtZSBiZWdpbiAxJyk7XG5cdFx0XHRcdFx0XHRcdGlmKHdpbmRvdy5jb3Vyc2V3YXJlICYmIHdpbmRvdy5jb3Vyc2V3YXJlLm9wZW5Pc21vRmluZ2VyUmVhZCkge1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMuaXNPcGVuZWRPc21vRmluZ2VyUmVhZCA9IHRydWU7XG5cdFx0XHRcdFx0XHRcdFx0d2luZG93LmNvdXJzZXdhcmUub3Blbk9zbW9GaW5nZXJSZWFkKHtcblx0XHRcdFx0XHRcdFx0XHRcdFwicGFnZV9pZFwiOiAyNyxcblx0XHRcdFx0XHRcdFx0XHRcdFwiYm9va19pZFwiOiBcIm9wdzFcIlxuXHRcdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0dmFyIGRyYWdvbkRpc3BsYXkgPSB0aGlzLmxvZ29DYXQuZ2V0Q29tcG9uZW50KGRyYWdvbkJvbmVzLkFybWF0dXJlRGlzcGxheSk7XG5cdFx0XHRcdFx0XHRcdGNvbnN0IHN0YXRlID0gZHJhZ29uRGlzcGxheS5wbGF5QW5pbWF0aW9uKCdiZWdpbicsIDApO1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUscmVqZWN0KSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0cGxheUF1ZGlvQnlVcmwodGhpcy5kYXRhLmJlZ2luX2F1ZGlvLCAoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnZ2FtZSBiZWdpbiBhdWRpbyBmaW5pc2gnKTtcblx0XHRcdFx0XHRcdFx0XHRcdHJlc29sdmUoKVxuXHRcdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdG9uRG9uZTogICdndWlkZScsXG5cdFx0XHRcdFx0XHRvbkVycm9yOiAnZ3VpZGUnXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LFxuXHRcdFx0XHRcblx0XHRcdFx0Z3VpZGU6e1xuXHRcdFx0XHRcdGludm9rZToge1xuXHRcdFx0XHRcdFx0c3JjOiAoY3R4KSA9PiB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSxyZWplY3QpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRwbGF5QXVkaW9CeVVybCh0aGlzLmRhdGEuZ3VpZGVfYXVkaW8sICgpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdnYW1lIGd1aWRlIGF1ZGlvIGZpbmlzaCcpO1xuXHRcdFx0XHRcdFx0XHRcdFx0cmVqZWN0KClcblx0XHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRvbkRvbmU6ICAncGxheWluZycsXG5cdFx0XHRcdFx0XHRvbkVycm9yOiAncGxheWluZydcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFxuXHRcdFx0XHR9LFxuXHRcdFx0XHRwbGF5aW5nOiB7XG5cdFx0XHRcdFx0ZW50cnk6IChjdHgpID0+IHtcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdlbnRyeSBwbGF5IHN0YWdlJyk7XG5cdFx0XHRcdFx0XHR2YXIgZHJhZ29uRGlzcGxheSA9IHRoaXMubG9nb0NhdC5nZXRDb21wb25lbnQoZHJhZ29uQm9uZXMuQXJtYXR1cmVEaXNwbGF5KTtcblx0XHRcdFx0XHRcdGNvbnN0IHN0YXRlID0gZHJhZ29uRGlzcGxheS5wbGF5QW5pbWF0aW9uKCdub3JtYWwnLCAwKTtcblx0XHRcdFx0XHRcdGNjLmFzc2V0TWFuYWdlci5sb2FkUmVtb3RlKHRoaXMuZGF0YS5wbGF5aW5nX2F1ZGlvLCAoZXJyLCBhdWRpb0NsaXApID0+IHtcblx0XHRcdFx0XHRcdFx0Y2MuYXVkaW9FbmdpbmUucGxheU11c2ljKGF1ZGlvQ2xpcCwgdHJ1ZSwgMC44KTtcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0Y3R4LnF1ZXN0aW9ucy5mb3JFYWNoKChibG9jaykgPT4ge1xuXHRcdFx0XHRcdFx0XHRibG9jay5ub2RlLmFjdGl2ZSA9IGZhbHNlO1xuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRleGl0OiAoKSA9PiB7XG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnZXhpdCBwbGF5IHN0YWdlJyk7XG5cdFx0XHRcdFx0XHRjYy5hdWRpb0VuZ2luZS5zdG9wTXVzaWMoKTtcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdG9uOiB7XG5cdFx0XHRcdFx0XHRORVhUOiAnZW5kJ1xuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0Ly8gLi4uUXVlc3Rpb25zU3RhdGVzXG5cdFx0XHRcdFx0Li4uUXVlc3Rpb25zQXJyYXlTdGF0dXNcblx0XHRcdFx0fSxcblx0XHRcdFx0ZW5kOiB7XG5cdFx0XHRcdFx0XHRlbnRyeTogKGN0eCwgZXZlbnQpID0+IHtcblx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ2dhbWUgZW5kJyk7XG5cdFx0XHRcdFx0XHRcdHZhciBkcmFnb25EaXNwbGF5ID0gdGhpcy5sb2dvQ2F0LmdldENvbXBvbmVudChkcmFnb25Cb25lcy5Bcm1hdHVyZURpc3BsYXkpO1xuXHRcdFx0XHRcdFx0XHRjb25zdCBzdGF0ZSA9IGRyYWdvbkRpc3BsYXkucGxheUFuaW1hdGlvbignZmluaXNoJywgMCk7XG5cdFx0XHRcdFx0XHRcdGlmKHdpbmRvdy5jb3Vyc2V3YXJlICYmIHdpbmRvdy5jb3Vyc2V3YXJlLmNsb3NlT3Ntb0ZpbmdlclJlYWQpIHtcblx0XHRcdFx0XHRcdFx0XHR0aGlzLmlzT3BlbmVkT3Ntb0ZpbmdlclJlYWQgPSBmYWxzZTtcblx0XHRcdFx0XHRcdFx0XHR3aW5kb3cuY291cnNld2FyZS5jbG9zZU9zbW9GaW5nZXJSZWFkKClcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRwbGF5QXVkaW9CeVVybCh0aGlzLmRhdGEuZW5kX2F1ZGlvLCAoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ2dhbWUgZmluaXNoJyk7XG5cdFx0XHRcdFx0XHRcdFx0b25Ib21ld29ya0ZpbmlzaCgpO1xuXHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHQvLyByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUscmVqZWN0KSA9PiB7XG5cdFx0XHRcdFx0XHRcdC8vIFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdC8vIFx0XHRjb25zb2xlLmxvZygnaGludCBmaW5pc2gnKTtcblx0XHRcdFx0XHRcdFx0Ly8gXHRcdHJlc29sdmUoKVxuXHRcdFx0XHRcdFx0XHQvLyBcdH0sIDIwMDApXG5cdFx0XHRcdFx0XHRcdC8vIH0pXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XG5cdFx0XHRcdH0sXG5cdFx0XHR9XG5cdFx0fTtcblx0XHRjb25zdCBhZnRlciA9IHt9O1xuXHRcdGZvcihsZXQgaSA9IDAgO2kgIDwgdGhpcy5faGludHNOb2RlTGlzdC5sZW5ndGg7IGkrKykge1xuXHRcdFx0Y29uc3QgdCA9IHRoaXMuX2hpbnRzTm9kZUxpc3RbaV0ubm9kZTtcblx0XHRcdGNvbnN0IGsgPSB0aGlzLl9oaW50c05vZGVMaXN0W2ldLmFmdGVyO1xuXHRcdFx0YWZ0ZXJba109IHtcblx0XHRcdFx0YWN0aW9uczogKCkgPT4ge1xuXG5cdFx0XHRcdFx0aWYgKHQuaXNTcGluZSkge1xuXG5cdFx0XHRcdFx0XHRjb25zdCBza2VsZXRvbiA9IHQuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKTtcblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0c2tlbGV0b24uc2V0VG9TZXR1cFBvc2UoKTtcblx0XHRcdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRza2VsZXRvbi5zZXRBbmltYXRpb24oMCwgJ2VubGFyZ2UnLCBmYWxzZSk7XG5cdFx0XHRcdFx0XHR9LCAxKTtcblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0Ly8gc2tlbGV0b24uYW5pbWF0aW9uID0gc2tlbGV0b24uYW5pbWF0aW9uTmFtZXNbMF07XG5cblx0XHRcdFx0XHR9IGVsc2Uge1xuXG5cdFx0XHRcdFx0XHRjb25zdCBkcmFnb25EaXNwbGF5ID0gdC5nZXRDb21wb25lbnQoZHJhZ29uQm9uZXMuQXJtYXR1cmVEaXNwbGF5KTtcblx0XHRcdFx0XHRcdGRyYWdvbkRpc3BsYXkucGxheUFuaW1hdGlvbignZW5sYXJnZScsIDEpO1xuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coZHJhZ29uRGlzcGxheS5fYXJtYXR1cmVLZXksICdlbmxhcmdlJylcblx0XHRcdFx0XHRcdGRyYWdvbkRpc3BsYXkuYWRkRXZlbnRMaXN0ZW5lcihkcmFnb25Cb25lcy5FdmVudE9iamVjdC5DT01QTEVURSwgKGV2ZW50KSA9PiB7XG5cdFx0XHRcdFx0XHRcdC8vIFRPRE8g6L+Z6YeM5YaZ6Kem5Y+R5LqL5Lu2XG5cdFx0XHRcdFx0XHRcdC8vIGV2ZW50Lm5hbWXkuLrkuovku7blkI3np7Bcblx0XHRcdFx0XHRcdFx0Ly8gZXZlbnQuYXJtYXR1cmUuYW5pbWF0aW9uLnBsYXkoJ25vcm1hbCcsIDApO1xuXHRcdFx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhldmVudC5hbmltYXRpb25TdGF0ZS5uYW1lLCBkcmFnb25EaXNwbGF5Ll9hcm1hdHVyZUtleSwgJ2VuZCcpXG5cdFx0XHRcdFx0XHR9LCB0aGlzKTtcblx0XHRcdFx0XHR9XG5cblxuXG5cdFx0XHRcdFx0Ly8gY29uc3QgZHJhZ29uRGlzcGxheSA9IHQuZ2V0Q29tcG9uZW50KGRyYWdvbkJvbmVzLkFybWF0dXJlRGlzcGxheSk7XG5cdFx0XHRcdFx0Ly8gZHJhZ29uRGlzcGxheS5wbGF5QW5pbWF0aW9uKCdlbmxhcmdlJywgMSk7XG5cdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coZHJhZ29uRGlzcGxheS5fYXJtYXR1cmVLZXksICdlbmxhcmdlJylcblx0XHRcdFx0XHQvLyBkcmFnb25EaXNwbGF5LmFkZEV2ZW50TGlzdGVuZXIoZHJhZ29uQm9uZXMuRXZlbnRPYmplY3QuQ09NUExFVEUsIChldmVudCkgPT4ge1xuXHRcdFx0XHRcdC8vIFx0Ly9UT0RPIOi/memHjOWGmeinpuWPkeS6i+S7tlxuXHRcdFx0XHRcdC8vIFx0Ly9ldmVudC5uYW1l5Li65LqL5Lu25ZCN56ewXG5cdFx0XHRcdFx0Ly8gXHRldmVudC5hcm1hdHVyZS5hbmltYXRpb24ucGxheSgnbm9ybWFsJywgMCk7XG5cdFx0XHRcdFx0Ly8gXHRjb25zb2xlLmxvZyhldmVudC5hbmltYXRpb25TdGF0ZS5uYW1lLCBkcmFnb25EaXNwbGF5Ll9hcm1hdHVyZUtleSwgJ2VuZCcpXG5cdFx0XHRcdFx0Ly8gfSwgdGhpcyk7XG5cdFx0XHRcdH0gXG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmICh0aGlzLmRhdGEuYmVnaW5fc2VwX3RpbWUpIHtcblx0XHRcdGNvbnN0IHQgPSArdGhpcy5kYXRhLmJlZ2luX3NlcF90aW1lICogMTAwMDtcblx0XHRcdGFmdGVyW3RdID0ge1xuXHRcdFx0XHRhY3Rpb25zOiAoKSA9PiB7XG5cdFx0XHRcdFx0Y29uc29sZS5sb2coJ2dhbWUgYmVnaW4gMicpO1xuXG5cdFx0XHRcdFx0Zm9yKGxldCBpID0gMCA7aSAgPCB0aGlzLl9hbGxBbmltYXRpb25Ob2Rlcy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdFx0Y29uc3QgdCA9IHRoaXMuX2FsbEFuaW1hdGlvbk5vZGVzW2ldO1xuXHRcdFx0XHRcdFx0aWYgKHQuaXNTcGluZSkge1xuXG5cdFx0XHRcdFx0XHRcdGNvbnN0IHNrZWxldG9uID0gdC5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pO1xuXHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnc2tlbGV0b246ICcsIHNrZWxldG9uKTtcblx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdHNrZWxldG9uLnNldFRvU2V0dXBQb3NlKCk7XG5cdFx0XHRcdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdHNrZWxldG9uLnNldEFuaW1hdGlvbigwLCAnbm9ybWFsJywgdHJ1ZSk7XG5cdFx0XHRcdFx0XHRcdH0sIDEpO1xuXHRcdFx0XHRcdFx0XHRcblxuXHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnc2tlbGV0b24gMjI6ICcsIHNrZWxldG9uKTtcblxuXHRcdFx0XHRcdFx0XHQvLyBza2VsZXRvbi5hbmltYXRpb24gPSBza2VsZXRvbi5hbmltYXRpb25OYW1lc1swXTtcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0XHRcdFx0Y29uc3QgZHJhZ29uRGlzcGxheSA9IHQuZ2V0Q29tcG9uZW50KGRyYWdvbkJvbmVzLkFybWF0dXJlRGlzcGxheSk7XG5cdFx0XHRcdFx0XHRcdGRyYWdvbkRpc3BsYXkucGxheUFuaW1hdGlvbignbm9ybWFsJywgMCk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdHN0YXRlLnN0YXRlcy5iZWdpbi5hZnRlciA9IGFmdGVyO1xuXG5cblxuXHRcdGNvbnN0IGdhbWVNYWNoaW5lID0gY3JlYXRlTWFjaGluZShzdGF0ZSk7XG5cdFx0d2luZG93LmdhbWVNYWNoaW5lID0gZ2FtZU1hY2hpbmU7XG5cdFx0dGhpcy5nYW1lTWFjaGluZVNlcnZpY2UgPSBpbnRlcnByZXQoZ2FtZU1hY2hpbmUpLm9uVHJhbnNpdGlvbigoc3RhdGUpID0+IHtcblx0XHQvLyBjb25zb2xlLmxvZygxLCBzdGF0ZS52YWx1ZSwgc3RhdGUuY29udGV4dCk7XG5cdFx0fSk7XG5cdFx0dGhpcy5nYW1lTWFjaGluZVNlcnZpY2Uuc3RhcnQoKTtcblx0XHRpZiAod2luZG93LmdhbWVNYWNoaW5lU2VydmljZSkge1xuXHRcdFx0d2luZG93LmdhbWVNYWNoaW5lU2VydmljZSA9IGdhbWVNYWNoaW5lU2VydmljZTtcblx0XHR9XG5cblxuXHR9LFxuXG5cdFxuXG5cblxuXHQvLyDnlJ/lkb3lkajmnJ8gc3RhcnRcblx0c3RhcnQoKSB7XG5cdFx0bGV0IGdldERhdGEgPSB0aGlzLmdldERhdGEuYmluZCh0aGlzKTtcblx0XHRpZiAod2luZG93ICYmIHdpbmRvdy5jb3Vyc2V3YXJlKSB7XG5cdFx0XHRnZXREYXRhID0gd2luZG93LmNvdXJzZXdhcmUuZ2V0RGF0YTtcblx0XHR9XG5cblx0XHRnZXREYXRhKChkYXRhKSA9PiB7XG5cdFx0XHQvLyBjb25zb2xlLmxvZygnZGF0YTonLCBkYXRhKTtcblx0XHRcdHRoaXMuZGF0YSA9IGRhdGEgfHwgdGhpcy5nZXREZWZhdWx0RGF0YSgpO1xuXHRcdFx0dGhpcy5kYXRhID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmRhdGEpKVxuXHRcdFx0XG5cdFx0XHR0aGlzLnByZWxvYWRJdGVtKClcblx0XHR9KTtcblx0XHR3aW5kb3cuYWlyID0gd2luZG93LmFpciB8fCB7fVxuXHRcdGlmICh3aW5kb3cuYWlyKSB7XG5cdFx0XHR3aW5kb3cuYWlyLm9zbW9GaW5nZXJSZWFkQ2FsbGJhY2sgPSAocmVzdWx0KSA9PiB7XG5cdFx0XHRcdGlmICghdGhpcy5nYW1lTWFjaGluZVNlcnZpY2UpIHtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblx0XHRcdFx0Ly8gY29uc3Qgc3QgPSB0aGlzLmdhbWVNYWNoaW5lU2VydmljZS5zdGF0ZS52YWx1ZS5jb25zdHJ1Y3Rvci5uYW1lID09ICdPYmplY3QnIFxuXHRcdFx0XHQvLyAmJiB0aGlzLmdhbWVNYWNoaW5lU2VydmljZS5zdGF0ZS52YWx1ZVsncGxheWluZyddXG5cdFx0XHRcdC8vICYmIHRoaXMuZ2FtZU1hY2hpbmVTZXJ2aWNlLnN0YXRlLnZhbHVlWydwbGF5aW5nJ10uY29uc3RydWN0b3IubmFtZSA9PSAnT2JqZWN0J1xuXHRcdFx0XHQvLyAmJiB0aGlzLmdhbWVNYWNoaW5lU2VydmljZS5zdGF0ZS52YWx1ZVsncGxheWluZyddWydwbGF5J11cblx0XHRcdFx0Ly8gJiYgdGhpcy5nYW1lTWFjaGluZVNlcnZpY2Uuc3RhdGUudmFsdWVbJ3BsYXlpbmcnXVsncGxheSddID09ICdhbnN3ZXInXG5cdFx0XHRcdC8vIGlmIChzdCkge1xuXHRcdFx0XHQvLyB9XG5cdFx0XHRcdGNvbnN0IHJlc3VsdE9iaiA9IEpTT04ucGFyc2UocmVzdWx0KTtcblx0XHRcdFx0Y29uc29sZS5sb2coJ1tHZW5pc2UgSlNdICcrIEpTT04uc3RyaW5naWZ5KHJlc3VsdE9iai5maW5nZXJfcG9zX2luX3BhZ2UpKVxuXHRcdFx0XHRjb25zdCBwID0gcmVzdWx0T2JqLmZpbmdlcl9wb3NfaW5fcGFnZTtcblx0XHRcdFx0aWYgKHAueCA9PSAtMSB8fCBwLnkgPT0gLTEpIHtcblx0XHRcdFx0XHR0aGlzLl9sYXN0RmluZ2VyUG9zaXRpb24ucG9zID0gbnVsbDtcblx0XHRcdFx0XHR0aGlzLl9sYXN0RmluZ2VyUG9zaXRpb24uZGlydHkgPSBmYWxzZTtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblx0XHRcdFx0dGhpcy5fbGFzdEZpbmdlclBvc2l0aW9uID0ge1xuXHRcdFx0XHRcdHBvczp7XG5cdFx0XHRcdFx0XHR4OiBwLngsXG5cdFx0XHRcdFx0XHR5OiBwLnlcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdGRpcnR5OiB0cnVlXG5cdFx0XHRcdH1cblx0XHRcdFx0dGhpcy5kZWJ1Z1BvaW50ZXIocC54LCBwLnkpXG5cdFx0XHR9XG5cdFx0fVxuXHRcdHRoaXMuaXNEZWJ1ZyA9IGZhbHNlO1xuXHRcdFxuXHR9LFxuXHRjaGVja0luUmVnaW9uKHIpIHtcblx0XHRjb25zb2xlLmxvZygncn5+fjogJywgcik7XG5cdFx0aWYgKCF0aGlzLl9sYXN0RmluZ2VyUG9zaXRpb24gJiYgIXRoaXMuX2xhc3RGaW5nZXJQb3NpdGlvbi5wb3MpIHtcblx0XHRcdHJldHVybiBudWxsO1xuXHRcdH1cblx0XHRjb25zdCBwID0gdGhpcy5fbGFzdEZpbmdlclBvc2l0aW9uID8gdGhpcy5fbGFzdEZpbmdlclBvc2l0aW9uLnBvcyB8fCB7eDowLCB5OjB9IDoge3g6MCwgeTowfTtcblx0XHRjb25zdCB3ID0gcC54ID4gci54ICYmIHAueCA8IChyLnggKyByLndpZHRoKTtcblx0XHRjb25zdCBoID0gcC55ID4gci55ICYmIHAueSA8IChyLnkgKyByLmhlaWdodCk7XG5cdFx0cmV0dXJuIHcgJiYgaDtcblxuXHR9LFxuXG5cdGdldERhdGEoZnVuYykge1xuXHRcdGlmICh3aW5kb3cgJiYgd2luZG93LmNvdXJzZXdhcmUpIHtcblx0XHRcdHdpbmRvdy5jb3Vyc2V3YXJlLmdldERhdGEoZnVuYywgJ3NjZW5lJyk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Y29uc3QgbWlkZGxlTGF5ZXIgPSBjYy5maW5kKCdtaWRkbGVMYXllcicpO1xuXHRcdGlmIChtaWRkbGVMYXllcikge1xuXHRcdFx0Y29uc3QgbWlkZGxlTGF5ZXJDb21wb25lbnQgPSBtaWRkbGVMYXllci5nZXRDb21wb25lbnQoJ21pZGRsZUxheWVyJyk7XG5cdFx0XHRtaWRkbGVMYXllckNvbXBvbmVudC5nZXREYXRhKGZ1bmMpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGZ1bmModGhpcy5nZXREZWZhdWx0RGF0YSgpKTtcblx0fSxcblxuXHRnZXREZWZhdWx0RGF0YSgpIHtcblx0XHRyZXR1cm4gIHtcImJlZ2luX2F1ZGlvXCI6XCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzNkMzA3YTAyNjYzZTFjZDY2N2I3Yzk1MTM0MGVjOThiLm1wM1wiLFwiYmVnaW5fc2VwX3RpbWVcIjoxLFwiZ3VpZGVfYXVkaW9cIjpcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vM2QzMDdhMDI2NjNlMWNkNjY3YjdjOTUxMzQwZWM5OGIubXAzXCIsXCJwbGF5aW5nX2F1ZGlvXCI6XCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzNkMzA3YTAyNjYzZTFjZDY2N2I3Yzk1MTM0MGVjOThiLm1wM1wiLFwicmlnaHRfYXVkaW9cIjpcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vM2QzMDdhMDI2NjNlMWNkNjY3YjdjOTUxMzQwZWM5OGIubXAzXCIsXCJ3cm9uZ19hdWRpb1wiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8zZDMwN2EwMjY2M2UxY2Q2NjdiN2M5NTEzNDBlYzk4Yi5tcDNcIixcIndyb25nX2F1ZGlvMVwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8zZDMwN2EwMjY2M2UxY2Q2NjdiN2M5NTEzNDBlYzk4Yi5tcDNcIixcIndyb25nX2F1ZGlvMlwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8zZDMwN2EwMjY2M2UxY2Q2NjdiN2M5NTEzNDBlYzk4Yi5tcDNcIixcImVuZF9hdWRpb1wiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8zZDMwN2EwMjY2M2UxY2Q2NjdiN2M5NTEzNDBlYzk4Yi5tcDNcIixcImJnSXRlbVwiOntcInVybFwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS84NGVjNmVkYzIwYmNlYWFhOWRiZTgyNDA5MmI2ODYwZC5wbmdcIixcInJlY3RcIjp7XCJ4XCI6NzM2Ljk1LFwieVwiOjAsXCJ3aWR0aFwiOjU5OS4wOSxcImhlaWdodFwiOjc3NX19LFwiaG90Wm9uZUl0ZW1BcnJcIjpbe1wiaWRcIjpcIjE2NTkzMzM2NDU1NzNcIixcImluZGV4XCI6MCxcImF1ZGlvX3VybFwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS81YTFhMjY3MDg0NWJmZTc2NjYyZTg2ZDlhM2E2OWY4MS5tcDNcIixcIml0ZW1UeXBlXCI6XCJyZWN0XCIsXCJmb250U2NhbGVcIjoxLjYxOTUzMTI1LFwiaW1nU2NhbGVcIjoxLFwiaW1nU2l6ZVdcIjowLFwiaW1nU2l6ZUhcIjowLFwibWFwU2NhbGVcIjoxLjYxOTUzMTI1LFwiZHJhZ0RvdFwiOntcInhcIjoxMDM2LjUsXCJ5XCI6Mzg3LjV9LFwiZ0lkeFwiOlwiMVwiLFwibGFiZWxUZXh0XCI6XCIxXCIsXCJwb3NYXCI6ODg3LjUsXCJwb3NZXCI6MTY1LjUsXCJza2VKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8xMzNhMWY2MDcxOWVkMjYyNDdlMzVkYzAyMmQ4Mjg2Mi5qc29uXCIsXCJuYW1lXCI6XCJzcGluZWJveS1wcm8uanNvblwifSxcInRleEpzb25EYXRhXCI6e1widXJsXCI6XCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2UwOTQ1YjgyNjVlYTNiODA1M2FmYjgxNGM2Yjg0OWQzLmF0bGFzXCIsXCJuYW1lXCI6XCJzcGluZWJveS1wcm8uYXRsYXNcIn0sXCJ0ZXhQbmdEYXRhXCI6e1widXJsXCI6XCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzUxNzU1M2Y1MDIyNDkxNTE0OGY5ZWZjNWI3NTU2Nzk4LnBuZ1wiLFwibmFtZVwiOlwic3BpbmVib3ktcHJvLnBuZ1wifSxcImFuaW1UeXBlXCI6XCJzcGluZVwiLFwicmVjdFwiOntcInhcIjo0OC4wNSxcInlcIjo2NS41LFwid2lkdGhcIjoyMDUsXCJoZWlnaHRcIjoyMDB9fSx7XCJpZFwiOlwiMTY1OTMzNDA5ODkzMFwiLFwiaW5kZXhcIjoxLFwiYXVkaW9fdXJsXCI6XCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzE2ZWIwNmE2YmViOWU0ZmE3N2M5YjVkMmQ2NDNhYjI5Lm1wM1wiLFwiaXRlbVR5cGVcIjpcInJlY3RcIixcImZvbnRTY2FsZVwiOjEuNjE5NTMxMjUsXCJpbWdTY2FsZVwiOjEsXCJpbWdTaXplV1wiOjAsXCJpbWdTaXplSFwiOjAsXCJtYXBTY2FsZVwiOjEuNjE5NTMxMjUsXCJkcmFnRG90XCI6e1wieFwiOjEwMzYuNSxcInlcIjozODcuNX0sXCJnSWR4XCI6XCIwXCIsXCJsYWJlbFRleHRcIjpcIjFcIixcInBvc1hcIjoxMjEyLjUsXCJwb3NZXCI6NjQzLjUsXCJza2VKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS82NzlmZWQyNmRhYTQ2NDgxOWQ1NTNkZTYzMzFiMzU1Mi5qc29uXCIsXCJuYW1lXCI6XCJhbGllbi1wcm8uanNvblwifSxcInRleEpzb25EYXRhXCI6e1widXJsXCI6XCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzY1ZDgyMTRjNmI1YzVkMDQ5NmUxN2FkYjA0MDgyNzZhLmF0bGFzXCIsXCJuYW1lXCI6XCJhbGllbi1wcm8uYXRsYXNcIn0sXCJ0ZXhQbmdEYXRhXCI6e1widXJsXCI6XCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2EzMTliMzcyODk5MjM5MzI1YjkwYmI0ZWMwN2I0OTcwLnBuZ1wiLFwibmFtZVwiOlwiYWxpZW4tcHJvLnBuZ1wifSxcImFuaW1UeXBlXCI6XCJzcGluZVwiLFwicmVjdFwiOntcInhcIjozNzUuNTYsXCJ5XCI6NTQzLjUsXCJ3aWR0aFwiOjIwMCxcImhlaWdodFwiOjIwMH19XX1cblx0XHQvLyByZXR1cm4gZGVmYXVsdERhdGE7XG5cdH0sXG5cblx0cHJlbG9hZEl0ZW0oKSB7XG5cdFx0dGhpcy5hZGRQcmVsb2FkSW1hZ2UoKTtcblx0XHR0aGlzLmFkZFByZWxvYWRBdWRpbygpO1xuXHRcdHRoaXMuYWRkUHJlbG9hZEFuaW1hKCk7XG5cdFx0dGhpcy5wcmVsb2FkKCk7XG5cdH0sXG5cblxuXHRhZGRQcmVsb2FkSW1hZ2UoKSB7XG5cblx0XHR0aGlzLl9pbWFnZVJlc0xpc3QucHVzaCh7IHVybDogdGhpcy5kYXRhLmJnSXRlbS51cmx9KTtcblxuXHRcdGZvciAoY29uc3QgcSBvZiB0aGlzLmRhdGEuaG90Wm9uZUl0ZW1BcnIpIHtcblx0XHRcdGlmIChxLmdJZHggPT0nMCcpIHtcblx0XHRcdFx0dGhpcy5faW1hZ2VSZXNMaXN0LnB1c2goeyB1cmw6IHEudGV4UG5nRGF0YS51cmx9KTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKHEuZ0lkeCA9PScxJykge1xuXHRcdFx0XHR0aGlzLl9pbWFnZVJlc0xpc3QucHVzaCh7IHVybDogcS50ZXhQbmdEYXRhLnVybCB9KTtcblx0XHRcdH1cblx0XHRcdGlmIChxLmdJZHggPT0nMicpIHtcblx0XHRcdFx0dGhpcy5faW1hZ2VSZXNMaXN0LnB1c2goeyB1cmw6IHEucGljX3VybH0pO1xuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0cHJlcGFyZUF1ZGlvQ2xpcCh1cmwsIGtleSkge1xuXHRcdGlmICh1cmwpIHtcblx0XHRcdGNjLmFzc2V0TWFuYWdlci5sb2FkUmVtb3RlKHVybCwgKGVyciwgYXVkaW9DbGlwKSA9PiB7XG5cdFx0XHRcdGlmIChhdWRpb0NsaXApIHtcblx0XHRcdFx0XHR0aGlzW2tleV0gPSBhdWRpb0NsaXA7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH1cblx0fSxcblx0YWRkUHJlbG9hZEF1ZGlvKCkge1xuXG5cdFx0dGhpcy5fYXVkaW9SZXNMaXN0LnB1c2goeyB1cmw6IHRoaXMuZGF0YS5iZWdpbl9hdWRpbyB9KTtcblx0XHQvLyB0aGlzLnByZXBhcmVBdWRpb0NsaXAodGhpcy5kYXRhLmJlZ2luX2F1ZGlvMSwgJ2JlZ2luX2F1ZGlvMScpXG5cdFx0Ly8gdGhpcy5fYXVkaW9SZXNMaXN0LnB1c2goeyB1cmw6IHRoaXMuZGF0YS5iZWdpbl9hdWRpbzIgfSk7XG5cdFx0Ly8gdGhpcy5wcmVwYXJlQXVkaW9DbGlwKHRoaXMuZGF0YS5iZWdpbl9hdWRpbzIsICdiZWdpbl9hdWRpbzInKVxuXHRcdHRoaXMuX2F1ZGlvUmVzTGlzdC5wdXNoKHsgdXJsOiB0aGlzLmRhdGEuZ3VpZGVfYXVkaW8gfSk7XG5cdFx0dGhpcy5fYXVkaW9SZXNMaXN0LnB1c2goeyB1cmw6IHRoaXMuZGF0YS5wbGF5aW5nX2F1ZGlvIH0pO1xuXHRcdGlmICh0aGlzLmRhdGEud3JvbmdfYXVkaW8pIHtcblx0XHRcdHRoaXMuX2F1ZGlvUmVzTGlzdC5wdXNoKHsgdXJsOiB0aGlzLmRhdGEud3JvbmdfYXVkaW8gfSk7XG5cdFx0XHR0aGlzLndyb25nQXVkaW8gPSB0aGlzLmRhdGEud3JvbmdfYXVkaW9cblx0XHR9XG5cdFx0aWYgKHRoaXMuZGF0YS5yaWdodF9hdWRpbykge1xuXHRcdFx0dGhpcy5fYXVkaW9SZXNMaXN0LnB1c2goeyB1cmw6IHRoaXMuZGF0YS5yaWdodF9hdWRpbyB9KTtcblx0XHRcdHRoaXMucmlnaHRBdWRpbyA9IHRoaXMuZGF0YS5yaWdodF9hdWRpb1xuXHRcdH1cblx0XHR0aGlzLl9hdWRpb1Jlc0xpc3QucHVzaCh7IHVybDogdGhpcy5kYXRhLndyb25nX2F1ZGlvMSB9KTtcblx0XHR0aGlzLl9hdWRpb1Jlc0xpc3QucHVzaCh7IHVybDogdGhpcy5kYXRhLndyb25nX2F1ZGlvMiB9KTtcblx0XHR0aGlzLl9hdWRpb1Jlc0xpc3QucHVzaCh7IHVybDogdGhpcy5kYXRhLmVuZF9hdWRpbyB9KTtcblxuXG5cdFx0Zm9yIChjb25zdCBxIG9mIHRoaXMuZGF0YS5ob3Rab25lSXRlbUFycikge1xuXHRcdFx0aWYgKHEuZ0lkeCA9PScwJykge1xuXHRcdFx0XHR0aGlzLl9hdWRpb1Jlc0xpc3QucHVzaCh7IHVybDogcS5hdWRpb191cmwgfSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHRkZWJ1Z1BvaW50ZXIoKSB7XG5cdFx0Y29uc3QgYm94RGVidWdnZXIgPSBjYy5maW5kKCdDYW52YXMvYm94LWRlYnVnZ2VyJyk7XG5cdFx0aWYgKCF0aGlzLmlzRGVidWcpIHtcblx0XHRcdGJveERlYnVnZ2VyLmFjdGl2ZSA9IGZhbHNlO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRpZiAoIXRoaXMuUE9JTlRFUl9OT0RFKSB7XG5cdFx0XHR0aGlzLlBPSU5URVJfTk9ERSA9IG5ldyBjYy5Ob2RlKCk7XG5cdFx0XHR0aGlzLlBPSU5URVJfTk9ERS5wYXJlbnQgPSBib3hEZWJ1Z2dlcjtcblx0XHRcdHRoaXMuUE9JTlRFUl9OT0RFLm5hbWUgPSAnUE9JTlRFUl9OT0RFJ1xuXHRcdFx0dGhpcy5QT0lOVEVSX05PREUuYWRkQ29tcG9uZW50KGNjLkdyYXBoaWNzKTtcblx0XHR9XG5cdFx0Y29uc3QgZ3JhcCA9IHRoaXMuUE9JTlRFUl9OT0RFLmdldENvbXBvbmVudChjYy5HcmFwaGljcyk7XG5cdFx0Z3JhcC5jbGVhcigpO1xuXHRcdGNvbnN0IGdyb3VuZCA9IGNjLmZpbmQoJ0NhbnZhcy9mcmFtZS1ib3JkZXIvZ3JvdW5kJyk7XG5cdFx0Y29uc3Qge3dpZHRoOiBiYXNlVywgaGVpZ2h0OiBiYXNlSH0gPSBncm91bmQ7XG5cdFx0Y29uc3Qge3g6IHB4LCB5OiBweX0gPSB0aGlzLl9sYXN0RmluZ2VyUG9zaXRpb24ucG9zO1xuXHRcdGxldCB4ID0gYmFzZVcgKiBweCAtIGJhc2VXIC8gMjtcblx0XHRsZXQgeSA9IGJhc2VIIC0gKGJhc2VIICogcHkpIC0gYmFzZUggLyAyIC0gMTY7XG5cdFx0Y29uc3QgcG4gPSBuZXcgY2MuTm9kZSgpO1xuXHRcdFxuXHRcdGdyYXAuZmlsbENvbG9yPWNjLmNvbG9yKDI1NSwgMCwgMCk7XG5cdFx0Z3JhcC5jaXJjbGUoeCwgeSwgMzIpO1xuXHRcdGdyYXAuZmlsbCgpO1xuXHRcdGdyYXAuc3Ryb2tlKCk7XG5cdH0sXG5cdGRlYnVnR3JhcGhpY3MoKSB7XG5cdFx0Y29uc3QgYm94RGVidWdnZXIgPSBjYy5maW5kKCdDYW52YXMvYm94LWRlYnVnZ2VyJyk7XG5cdFx0aWYgKCF0aGlzLmlzRGVidWcpIHtcblx0XHRcdGJveERlYnVnZ2VyLmFjdGl2ZSA9IGZhbHNlO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRib3hEZWJ1Z2dlci5hY3RpdmUgPSB0cnVlO1xuXHRcdGNvbnNvbGUubG9nKCdzaG93IGRlYnVnIGdyYXBoaWNzJyk7XG5cdFx0Y29uc3QgZ3JvdW5kID0gY2MuZmluZCgnQ2FudmFzL2ZyYW1lLWJvcmRlci9ncm91bmQnKTtcblx0XHRjb25zdCBjYW52YXMgPSBjYy5maW5kKCdDYW52YXMnKTtcblx0XHRjb25zdCB7d2lkdGg6IGJhc2VXLCBoZWlnaHQ6IGJhc2VIfSA9IGdyb3VuZDtcblx0XHRjb25zdCB7d2lkdGg6IGJnVywgaGVpZ2h0OiBiZ0h9ID0gdGhpcy5kYXRhLmJnSXRlbS5yZWN0XG5cdFx0Y29uc3Qgc2NhbGVYID0gYmdXIC8gYmFzZVc7XG5cdFx0Y29uc3Qgc2NhbGVZID0gYmdIIC8gYmFzZUg7XG5cdFx0bGV0IGFkZGVkICA9ZmFsc2Vcblx0XHR0aGlzLmRhdGEuaG90Wm9uZUl0ZW1BcnIuZm9yRWFjaChhcmVhID0+IHtcblx0XHRcdFxuXHRcdFx0aWYgKGFkZGVkKSB7XG5cdFx0XHRcdC8vIHJldHVyblxuXHRcdFx0fVxuXHRcdFx0aWYgKGFyZWEuZ0lkeCAhPSAnMCcpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0YWRkZWQgPSB0cnVlO1xuXHRcdFx0Y29uc3QgZG4gPSBuZXcgY2MuTm9kZSgpO1xuXHRcdFx0Y29uc3QgbGJsTm9kZSA9IG5ldyBjYy5Ob2RlKCk7XG5cdFx0XHRsYmxOb2RlLnBhcmVudCA9IGRuXG5cdFx0XHRjb25zdCBsYmwgPSBsYmxOb2RlLmFkZENvbXBvbmVudChjYy5MYWJlbCk7XG5cdFx0XHRsYmxOb2RlLmNvbG9yID0gY2MuY29sb3IoMCwwLDApXG5cdFx0XHRsYmwuc3RyaW5nID0gYXJlYS5za2VKc29uRGF0YS5uYW1lLnN1YnN0cmluZygwLCBhcmVhLnNrZUpzb25EYXRhLm5hbWUubGVuZ3RoIC0gOSlcblx0XHRcdGRuLm5hbWUgPSBsYmwuc3RyaW5nO1xuXHRcdFx0ZG4ucGFyZW50ID0gYm94RGVidWdnZXI7XG5cdFx0XHRkbi53aWR0aCA9IGJhc2VXO1xuXHRcdFx0ZG4uaGVpZ2h0ID0gYmFzZUg7XG5cdFx0XHRcblx0XHRcdGNvbnN0IGdyYXAgPSBkbi5hZGRDb21wb25lbnQoY2MuR3JhcGhpY3MpO1xuXHRcdFx0Y29uc3QgciA9IFJhbmRvbUludCgxLDI1NSlcblx0XHRcdGNvbnN0IGcgPSBSYW5kb21JbnQoMSwyNTUpXG5cdFx0XHRjb25zdCBiID0gUmFuZG9tSW50KDEsMjU1KVxuXHRcdFx0Z3JhcC5maWxsQ29sb3I9Y2MuY29sb3IociwgZywgYiwgMTI3KTtcblx0XHRcdGNvbnN0IHt4OiByeCwgeTogcnksIHdpZHRoOiBydywgaGVpZ2h0OiByaH0gPSAgYXJlYS5yZWN0O1xuXHRcdFx0bGV0IHcgPSAocncgLyBiZ1cpICogYmFzZVc7XG5cdFx0XHRsZXQgaCA9IChyaCAvIGJnSCkgKiBiYXNlSDtcblx0XHRcdGxldCB4ID0gKHJ4IC8gYmdXKSAqIGJhc2VXIC0gYmFzZVcgLyAyO1xuXHRcdFx0bGV0IHkgPSBiYXNlSCAtICgocnkgLyBiZ0gpICogYmFzZUgpIC0gaCAtIGJhc2VIIC8gMjtcblx0XHRcdC8vIHcgKj0gc2NhbGVYXG5cdFx0XHQvLyBoICo9IHNjYWxlWVxuXHRcdFx0Ly8geCAqPSBzY2FsZVhcblx0XHRcdC8vIHkgKj0gc2NhbGVZXG4gICAgICAgICAgICAvLyBjb25zdCBwID0gYm94RGVidWdnZXIuY29udmVydFRvTm9kZVNwYWNlQVIoY2MudjIoeCx5KSk7XG5cdFx0XHQvLyB4ID0gcC54O1xuXHRcdFx0Ly8geSA9IHAueTtcblx0XHRcdGxibE5vZGUueCA9IHg7XG5cdFx0XHRsYmxOb2RlLnkgPSB5ICsgaDtcblx0XHRcdC8vIGRuLnNjYWxlWCA9IHNjYWxlWDtcblx0XHRcdC8vIGRuLnNjYWxlWSA9IHNjYWxlWTtcblx0XHRcdC8vIGRuLnNjYWxlID0gYXJlYS5tYXBTY2FsZTsgLy8gbWluU2NhbGU7IC8vIHRoaXMuX21hcFNjYWxlTWF4ICogYXJlYS5tYXBTY2FsZTsgLy8gO1xuXHRcdFx0Y29uc29sZS5sb2coJ1tkZWJ1Z10nLCBhcmVhLnNrZUpzb25EYXRhLm5hbWUsIHgsIHksIHcsIGgpO1xuXHRcdFx0Z3JhcC5maWxsUmVjdCh4LCB5LCB3LCBoKTtcblx0XHRcdGdyYXAuc3Ryb2tlKCk7XG5cdFx0XHRcblx0XHR9KTtcblxuXHR9LFxuXHRhZGRQcmVsb2FkQW5pbWEoKSB7XG5cblx0fSxcblxuXHRwcmVsb2FkKCkge1xuXG5cdFx0Y29uc3QgcHJlbG9hZEFyciA9IHRoaXMuX2ltYWdlUmVzTGlzdC5jb25jYXQodGhpcy5fYXVkaW9SZXNMaXN0KS5jb25jYXQodGhpcy5fYW5pbWFSZXNMaXN0KTtcblx0XHQvLyBjb25zb2xlLmxvZyhwcmVsb2FkQXJyKTtcblx0XHRjYy5hc3NldE1hbmFnZXIubG9hZEFueShwcmVsb2FkQXJyLCBudWxsLCAoZiwgdCwgaXRlbSkgPT4ge1xuXHRcdFx0Ly8gY29uc29sZS5sb2coZiwgdCwgaXRlbSlcblx0XHR9LCAoZXJyLCBkYXRhKSA9PiB7XG5cdFx0XHQvLyBjb25zb2xlLmxvZyhlcnIsIGRhdGEpO1xuXHRcdFx0Y29uc3QgZ3JvdW5kID0gY2MuZmluZChgQ2FudmFzL2ZyYW1lLWJvcmRlci9ncm91bmRgKTtcblx0XHRcdGNvbnN0IGdyb3VuZEJnID0gY2MuZmluZChgQ2FudmFzL2ZyYW1lLWJvcmRlci9ncm91bmQvYmdgKTtcblx0XHRcdGdyb3VuZEJnLmFjdGl2ZSA9IGZhbHNlO1xuXHRcdFx0Y29uc3QgYmFzZVJlY3QgPSB0aGlzLmRhdGEuYmdJdGVtLnJlY3Q7XG5cdFx0XHRnZXRTcHJpdGVGcmltZUJ5VXJsKHRoaXMuZGF0YS5iZ0l0ZW0udXJsLCAoc2YpID0+IHtcblx0XHRcdFx0Y29uc3QgZ3MgPSBncm91bmRCZy5nZXRDb21wb25lbnQoY2MuU3ByaXRlKTtcblx0XHRcdFx0Z3Muc3ByaXRlRnJhbWUgPSBzZjtcblx0XHRcdFx0Z3JvdW5kQmcuYWN0aXZlID0gdHJ1ZTtcblxuXHRcdFx0XHRsZXQgZGJDb3VudCA9IDA7XG5cdFx0XHRcdGxldCBmaW5pc2hEYkNvdW50ID0gMFxuXHRcdFx0XHRmb3IoY29uc3QgYmxvY2sgb2YgdGhpcy5kYXRhLmhvdFpvbmVJdGVtQXJyKSB7XG5cdFx0XHRcdFx0aWYgKGJsb2NrLmdJZHggPT0gJzAnIHx8IGJsb2NrLmdJZHggPT0gJzEnKSB7XG5cdFx0XHRcdFx0XHRkYkNvdW50Kys7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdGZvcihjb25zdCBibG9jayBvZiB0aGlzLmRhdGEuaG90Wm9uZUl0ZW1BcnIpIHtcblxuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdGlmIChibG9jay5nSWR4ID09ICcyJykge1xuXHRcdFx0XHRcdFx0Y29uc3QgczEgPSAoKGdyb3VuZC53aWR0aCAgLyBibG9jay5pbWdTaXplVykgKyAoZ3JvdW5kLmhlaWdodCAgLyBibG9jay5pbWdTaXplSCkpIC8gMlxuXHRcdFx0XHRcdFx0Y29uc3Qgbm9kZSA9IG5ldyBjYy5Ob2RlKCk7XG5cdFx0XHRcdFx0XHRub2RlLnBhcmVudCA9IGdyb3VuZDtcblx0XHRcdFx0XHRcdGNvbnN0IHNwciA9IG5vZGUuYWRkQ29tcG9uZW50KGNjLlNwcml0ZSk7XG5cdFx0XHRcdFx0XHRnZXRTcHJpdGVGcmltZUJ5VXJsKGJsb2NrLnBpY191cmwsIChzZikgPT4ge1xuXHRcdFx0XHRcdFx0c3ByLnNwcml0ZUZyYW1lID0gc2Y7XG5cdFx0XHRcdFx0XHRub2RlLnNjYWxlID0gczE7XG5cdFx0XHRcdFx0XHR9KVxuXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmIChibG9jay5nSWR4ID09ICcwJyB8fCBibG9jay5nSWR4ID09ICcxJykge1xuXG5cdFx0XHRcdFx0XHRjb25zdCBuID0gbmV3IGNjLk5vZGUoKTtcblx0XHRcdFx0XHRcdG4uc2NhbGUgPSAwLjI1O1xuXHRcdFx0XHRcdFx0bi5wYXJlbnQgPSBncm91bmQ7XG5cdFx0XHRcdFx0XHRuLmFjdGl2ZSA9IGZhbHNlO1xuXG5cdFx0XHRcdFx0XHRpZiAoYmxvY2suYW5pbVR5cGUgPT0gJ3NwaW5lJykge1xuXHRcdFx0XG5cdFx0XHRcdFx0XHRcdGNvbnN0IHNrZWxldG9uID0gbi5hZGRDb21wb25lbnQoc3AuU2tlbGV0b24pO1xuXHRcdFx0XHRcdFx0XHRuLmlzU3BpbmUgPSB0cnVlO1xuXG5cdFx0XHRcdFx0XHRcdGxvYWRTcGluZShza2VsZXRvbiwgYmxvY2sudGV4UG5nRGF0YS5uYW1lLCB7XG5cdFx0XHRcdFx0XHRcdFx0dGV4OiBibG9jay50ZXhQbmdEYXRhLnVybCwgXG5cdFx0XHRcdFx0XHRcdFx0YXRsYXM6IGJsb2NrLnRleEpzb25EYXRhLnVybCxcblx0XHRcdFx0XHRcdFx0XHRza2U6IGJsb2NrLnNrZUpzb25EYXRhLnVybCxcblx0XHRcdFx0XHRcdFx0fSkudGhlbigoe3dpZHRoLCBoZWlnaHR9KSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0bi53aWR0aCA9IHdpZHRoO1xuXHRcdFx0XHRcdFx0XHRcdG4uaGVpZ2h0ID0gaGVpZ2h0O1x0XG5cdFx0XHRcdFx0XHRcdFx0bi5hY3RpdmUgPSB0cnVlO1xuXHRcdFx0XHRcdFx0XHRcdC8vIGRiLnBsYXlBbmltYXRpb24oJ251bGwnLCAwKTtcblx0XHRcdFx0XHRcdFx0XHQvLyBza2VsZXRvbi5zZXRUb1NldHVwUG9zZSgpO1xuXHRcdFx0XHRcdFx0XHRcdHNrZWxldG9uLnNldEFuaW1hdGlvbigwLCAnZW5sYXJnZScsIHRydWUpO1x0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5fYWxsQW5pbWF0aW9uTm9kZXMucHVzaChuKTtcblx0XHRcdFx0XHRcdFx0XHRmaW5pc2hEYkNvdW50Kys7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coZmluaXNoRGJDb3VudCwgZGJDb3VudClcblx0XHRcdFx0XHRcdFx0XHRpZiAoZmluaXNoRGJDb3VudCA9PSBkYkNvdW50KSB7XG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLmxvYWRFbmQoKTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH0pLmNhdGNoKCgpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRmaW5pc2hEYkNvdW50Kys7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coZmluaXNoRGJDb3VudCwgZGJDb3VudClcblx0XHRcdFx0XHRcdFx0XHRpZiAoZmluaXNoRGJDb3VudCA9PSBkYkNvdW50KSB7XG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLmxvYWRFbmQoKTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XG5cdFx0XHRcdFx0XHRcdGNvbnN0IGRiID0gbi5hZGRDb21wb25lbnQoZHJhZ29uQm9uZXMuQXJtYXR1cmVEaXNwbGF5KTtcblxuXHRcdFx0XHRcdFx0XHRsb2FkRHJhZ29uQm9uZXMoZGIsIHtcblx0XHRcdFx0XHRcdFx0XHR0ZXg6IGJsb2NrLnRleFBuZ0RhdGEudXJsLCBcblx0XHRcdFx0XHRcdFx0XHRhdGxhczogYmxvY2sudGV4SnNvbkRhdGEudXJsLFxuXHRcdFx0XHRcdFx0XHRcdHNrZTogYmxvY2suc2tlSnNvbkRhdGEudXJsLFxuXHRcdFx0XHRcdFx0XHR9KS50aGVuKCh7d2lkdGgsIGhlaWdodH0pID0+IHtcblx0XHRcdFx0XHRcdFx0XHRuLndpZHRoID0gd2lkdGg7XG5cdFx0XHRcdFx0XHRcdFx0bi5oZWlnaHQgPSBoZWlnaHQ7XHRcblx0XHRcdFx0XHRcdFx0XHRuLmFjdGl2ZSA9IHRydWU7XG5cdFx0XHRcdFx0XHRcdFx0ZGIucGxheUFuaW1hdGlvbignbnVsbCcsIDApO1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMuX2FsbEFuaW1hdGlvbk5vZGVzLnB1c2gobik7XG5cdFx0XHRcdFx0XHRcdFx0ZmluaXNoRGJDb3VudCsrO1xuXHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKGZpbmlzaERiQ291bnQsIGRiQ291bnQpXG5cdFx0XHRcdFx0XHRcdFx0aWYgKGZpbmlzaERiQ291bnQgPT0gZGJDb3VudCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5sb2FkRW5kKCk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9KS5jYXRjaCgoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0ZmluaXNoRGJDb3VudCsrO1xuXHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKGZpbmlzaERiQ291bnQsIGRiQ291bnQpXG5cdFx0XHRcdFx0XHRcdFx0aWYgKGZpbmlzaERiQ291bnQgPT0gZGJDb3VudCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5sb2FkRW5kKCk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XG5cblx0XHRcdFx0XHRcdGlmIChibG9jay5nSWR4ID09ICcwJykge1xuXHRcdFx0XHRcdFx0XHRjb25zdCByZWN0SW5mbyA9IHtcblx0XHRcdFx0XHRcdFx0XHRub2RlOiBuLFxuXHRcdFx0XHRcdFx0XHRcdGF1ZGlvX3VybDogYmxvY2suYXVkaW9fdXJsICxcblx0XHRcdFx0XHRcdFx0XHRyZWN0OiB7XG5cdFx0XHRcdFx0XHRcdFx0XHR4OiBibG9jay5yZWN0LnggLyBiYXNlUmVjdC53aWR0aCxcblx0XHRcdFx0XHRcdFx0XHRcdHk6IGJsb2NrLnJlY3QueSAvIGJhc2VSZWN0LmhlaWdodCxcblx0XHRcdFx0XHRcdFx0XHRcdHdpZHRoOiBibG9jay5yZWN0LndpZHRoIC8gYmFzZVJlY3Qud2lkdGgsXG5cdFx0XHRcdFx0XHRcdFx0XHRoZWlnaHQ6IGJsb2NrLnJlY3QuaGVpZ2h0IC8gYmFzZVJlY3QuaGVpZ2h0LFxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRcdFx0dGhpcy5fZmlndXJlUG9pbnRSZWN0QXJyYXkucHVzaChyZWN0SW5mbyk7XG5cblx0XHRcdFx0XHRcdFx0Ly8gdGhpcy5hZGRSZWN0Tm9kZUxpc3RlbmVyKGJsb2NrKTtcblx0XHRcblx0XHRcdFx0XHRcdFx0aWYgKGJsb2NrLmxhYmVsVGV4dCkge1xuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IGsgPSArYmxvY2subGFiZWxUZXh0ICogMTAwMDtcblx0XHRcdFx0XHRcdFx0XHRpZighaXNOYU4oaykpIHtcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuX2hpbnRzTm9kZUxpc3QucHVzaCh7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdG5vZGU6IG4sXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGFmdGVyOiBrXG5cdFx0XHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdFx0XG5cdFx0XHQvLyBjb25zb2xlLmxvZyh0aGlzLmRhdGEpO1xuXHRcdFx0Y29uc29sZS5sb2coJ3Jlc291cmNlIHBlcmxvYWQgZmluaXNoJyk7XG5cbi8vIDw8PDw8PDwgSEVBRFxuLy8gPT09PT09PVxuLy8gXHRcdFx0aWYgKHdpbmRvdyAmJiB3aW5kb3dbXCJhaXJcIl0pIHtcbi8vIFx0XHRcdFx0Ly8gY2MuZmluZCgnQ2FudmFzJykub3BhY2l0eSA9IDA7XG4vLyBcdFx0XHRcdHdpbmRvdy5haXIub25Db3Vyc2VJblNjcmVlbiA9IChuZXh0KSA9PiB7XG4vLyBcdFx0XHRcdFx0Ly8gY2MuZmluZCgnQ2FudmFzJykub3BhY2l0eSA9IDI1NTtcbi8vIFx0XHRcdFx0XHR0aGlzLmxvYWRFbmQoKTtcbi8vIFx0XHRcdFx0XHRuZXh0KCk7XG4vLyBcdFx0XHRcdH1cbi8vIFx0XHRcdFx0d2luZG93LmFpci5oaWRlQWlyQ2xhc3NMb2FkaW5nKCk7XG4vLyBcdFx0XHR9IGVsc2Uge1xuLy8gXHRcdFx0XHR0aGlzLmxvYWRFbmQoKTtcbi8vIFx0XHRcdH1cbi8vID4+Pj4+Pj4gMmQ0NjFlMTkxMDU3MWJjZmM2YWQ0ZGM5M2MyY2VkYWZjMjA5MjNlYVxuXG5cdFx0XHRjYy5kZWJ1Zy5zZXREaXNwbGF5U3RhdHMoZmFsc2UpO1xuXHRcdH0pO1xuXHR9LFxuXG5cblx0bG9hZEVuZCgpIHtcblx0XHRpZiAod2luZG93ICYmIHdpbmRvd1tcImFpclwiXSAmJiB3aW5kb3dbXCJhaXJcIl0uaGlkZUFpckNsYXNzTG9hZGluZykge1xuXHRcdFx0d2luZG93W1wiYWlyXCJdLmhpZGVBaXJDbGFzc0xvYWRpbmcoKTtcblx0XHR9XG5cdFx0dGhpcy5pbml0RGF0YSgpO1xuXHRcdC8vIHRoaXMuaW5pdEF1ZGlvKCk7XG5cdFx0Ly8gdGhpcy5pbml0VmlldygpO1xuXHRcdHRoaXMuaW5pdEJnKCk7XG5cdFx0Ly8gdGhpcy5pbml0TGlzdGVuZXIoKTtcblx0XHR0aGlzLmRlYnVnR3JhcGhpY3MoKTtcblx0XHR0aGlzLmNyZWF0ZVN0YXRlTWFjaGluZSgpO1xuXHR9LFxuXG5cdF9jYW50b3VjaDogbnVsbCxcblx0aW5pdERhdGEoKSB7XG5cdFx0Ly8g5omA5pyJ5YWo5bGA5Y+Y6YePIOm7mOiupOmDveaYr251bGwgXG5cdFx0dGhpcy5fY2FudG91Y2ggPSB0cnVlO1xuXHR9LFxuXG5cdC8vIGF1ZGlvQnRuOiBudWxsLFxuXHQvLyBpbml0QXVkaW8oKSB7XG5cdC8vIFx0Y29uc3QgYXVkaW9Ob2RlID0gY2MuZmluZCgnQ2FudmFzL3Jlcy9hdWRpbycpO1xuXG5cdC8vIFx0Y29uc3QgZ2V0QXVkaW9CeVJlc05hbWUgPSAocmVzTmFtZSkgPT4ge1xuXHQvLyBcdFx0cmV0dXJuIGF1ZGlvTm9kZS5nZXRDaGlsZEJ5TmFtZShyZXNOYW1lKS5nZXRDb21wb25lbnQoY2MuQXVkaW9Tb3VyY2UpO1xuXHQvLyBcdH1cblxuXHQvLyBcdHRoaXMuYXVkaW9CdG4gPSBnZXRBdWRpb0J5UmVzTmFtZSgnYnRuJyk7XG5cblx0Ly8gfSxcblxuXG5cdC8vIGluaXRWaWV3KCkge1xuXG5cdC8vIFx0Ly8gdGhpcy5pbml0QmcoKTtcblx0Ly8gXHQvLyB0aGlzLmluaXRQaWMoKTtcblx0Ly8gXHQvLyB0aGlzLmluaXRCdG4oKTtcblx0Ly8gXHR0aGlzLmluaXRJY29uKCk7XG5cdC8vIH0sXG5cblx0YWRkUmVjdE5vZGVMaXN0ZW5lcihkYXRhKSB7XG5cblxuXHRcdGNvbnN0IGJnID0gY2MuZmluZChgQ2FudmFzL2ZyYW1lLWJvcmRlci9ncm91bmQvYmdgKTtcblxuXHRcdGNvbnN0IHJhdGUgPSAoYmcuc2NhbGUgKiBiZy53aWR0aCkgLyB0aGlzLmRhdGEuYmdJdGVtLnJlY3Qud2lkdGg7XG5cblx0XHRjb25zdCByZWN0Tm9kZSA9IG5ldyBjYy5Ob2RlKCk7XG5cdFx0cmVjdE5vZGUubmFtZSA9ICdyZWN0JyArIGRhdGEuaW5kZXg7XG5cdFx0YmcuYWRkQ2hpbGQocmVjdE5vZGUpO1xuXG5cblx0XHRjb25zdCBjdHggPSByZWN0Tm9kZS5hZGRDb21wb25lbnQoY2MuR3JhcGhpY3MpO1xuXHRcdC8vIOe6ouiJsuefqeW9olxuXHRcdGN0eC5saW5lV2lkdGggPSA0O1xuXHRcdGN0eC5zdHJva2VDb2xvciA9IGNjLkNvbG9yLkJMQUNLO1xuXHRcdGN0eC5maWxsQ29sb3IgPSBjYy5Db2xvci5XSElURS5zZXRBKDEwMCk7XG5cblx0XHRjb25zdCBzY2FsZSA9IHJhdGUgLyBiZy5zY2FsZVk7XG5cblx0XHRyZWN0Tm9kZS53aWR0aCA9IGRhdGEucmVjdC53aWR0aCAqIHNjYWxlO1xuXHRcdHJlY3ROb2RlLmhlaWdodCA9IGRhdGEucmVjdC5oZWlnaHQgKiBzY2FsZTtcblx0XHRyZWN0Tm9kZS54ID0gLWJnLndpZHRoIC8gMiArIGRhdGEucmVjdC54ICogc2NhbGU7XG5cdFx0cmVjdE5vZGUueSA9IGJnLmhlaWdodCAvIDIgLSBkYXRhLnJlY3QuaGVpZ2h0ICogc2NhbGUgLSBkYXRhLnJlY3QueSAqIHNjYWxlO1xuXG5cdFx0cmVjdE5vZGUuYW5jaG9yWCA9IHJlY3ROb2RlLmFuY2hvclkgPSAwO1xuXG5cblx0XHQvLyBpZiAocGFnZURhdGEuYmdJdGVtLmlzU2hvd0RlYnVnTGluZSkge1xuXHRcdFx0Y3R4LnJlY3QoMCwgMCwgcmVjdE5vZGUud2lkdGgsIHJlY3ROb2RlLmhlaWdodCk7XG5cdFx0Ly8gfVxuXHRcdGN0eC5zdHJva2UoKTtcblx0XHRjdHguZmlsbCgpO1xuXG5cdH0sXG5cblx0aW5pdEJnKCkge1xuXHRcdGNvbnN0IGJnTm9kZSA9IGNjLmZpbmQoJ0NhbnZhcy9iZycpO1xuXHRcdGJnTm9kZS5zY2FsZSA9IHRoaXMuX21hcFNjYWxlTWF4O1xuXHRcdGNvbnNvbGUubG9nKCd0aGlzLl9tYXBTY2FsZU1heCcsIHRoaXMuX21hcFNjYWxlTWF4KTtcblx0fSxcblxuXHRcblx0XG5cblx0Lyppbml0QnRuKCkge1xuXG5cdFx0dGhpcy5jdXJQYWdlID0gMDtcblx0XHRjb25zdCBib3R0b21QYXJ0ID0gY2MuZmluZCgnQ2FudmFzL2JvdHRvbVBhcnQnKTtcblx0XHRib3R0b21QYXJ0LnpJbmRleCA9IDU7IC8vIOaPkOmrmOWxgue6p1xuXG5cdFx0Ym90dG9tUGFydC54ID0gYm90dG9tUGFydC5wYXJlbnQud2lkdGggLyAyO1xuXHRcdGJvdHRvbVBhcnQueSA9IC1ib3R0b21QYXJ0LnBhcmVudC5oZWlnaHQgLyAyO1xuXG5cdFx0Y29uc3QgbGVmdEJ0bk5vZGUgPSBib3R0b21QYXJ0LmdldENoaWxkQnlOYW1lKCdidG5fbGVmdCcpO1xuXHRcdC8v6IqC54K55Lit5re75Yqg5LqGYnV0dG9u57uE5Lu2IOWImeWPr+S7pea3u+WKoGNsaWNr5LqL5Lu255uR5ZCsXG5cdFx0bGVmdEJ0bk5vZGUub24oJ2NsaWNrJywgKCkgPT4ge1xuXHRcdFx0aWYgKCF0aGlzLl9jYW50b3VjaCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHRpZiAodGhpcy5jdXJQYWdlID09IDApIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5jdXJQYWdlID0gMFxuXHRcdFx0dGhpcy5sZWZ0TW92ZSgpO1xuXG5cdFx0XHQvLyDmuLjmiI/nu5PmnZ/ml7bpnIDopoHosIPnlKjov5nkuKrmlrnms5XpgJrnn6Xns7vnu5/kvZzkuJrlrozmiJBcblx0XHRcdG9uSG9tZXdvcmtGaW5pc2goKTtcblxuXHRcdFx0Y2MuYXVkaW9FbmdpbmUucGxheSh0aGlzLmF1ZGlvQnRuLmNsaXAsIGZhbHNlLCAwLjgpXG5cdFx0fSlcblxuXHRcdGNvbnN0IHJpZ2h0QnRuTm9kZSA9IGJvdHRvbVBhcnQuZ2V0Q2hpbGRCeU5hbWUoJ2J0bl9yaWdodCcpO1xuXHRcdC8v6IqC54K55Lit5re75Yqg5LqGYnV0dG9u57uE5Lu2IOWImeWPr+S7pea3u+WKoGNsaWNr5LqL5Lu255uR5ZCsXG5cdFx0cmlnaHRCdG5Ob2RlLm9uKCdjbGljaycsICgpID0+IHtcblx0XHRcdGlmICghdGhpcy5fY2FudG91Y2gpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0aWYgKHRoaXMuY3VyUGFnZSA9PSAxKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0dGhpcy5jdXJQYWdlID0gMVxuXHRcdFx0dGhpcy5yaWdodE1vdmUoKTtcblxuXHRcdFx0Y2MuYXVkaW9FbmdpbmUucGxheSh0aGlzLmF1ZGlvQnRuLmNsaXAsIGZhbHNlLCAwLjUpXG5cdFx0fSlcblx0fSwqL1xuXG5cblxuXG5cdC8vIHVwZGF0ZSAoZHQpIHt9LFxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblx0X3RpbWVvdXRJZHM6IG51bGwsXG5cdF9pbnRlcnZhbElkczogbnVsbCxcblx0Ly8g55Sf5ZG95ZGo5pyfXG5cdG9uRGVzdHJveSgpIHtcblx0XHRjb25zb2xlLmxvZygnb3AxNSBvbkRlc3Ryb3knKTtcblx0XHR0aGlzLl90aW1lb3V0SWRzLmZvckVhY2goaWQgPT4ge1xuXHRcdFx0Y2xlYXJUaW1lb3V0KGlkKTtcblx0XHR9KTtcblx0XHR0aGlzLl9pbnRlcnZhbElkcy5mb3JFYWNoKGlkID0+IHtcblx0XHRcdGNsZWFySW50ZXJ2YWwoaWQpO1xuXHRcdH0pO1xuXHRcdHRoaXMuZ2FtZU1hY2hpbmVTZXJ2aWNlLnN0b3BDaGlsZCgpO1xuXHRcdHRoaXMuZ2FtZU1hY2hpbmVTZXJ2aWNlLnN0b3AoKTtcblx0XHRpZih3aW5kb3cuY291cnNld2FyZSAmJiB3aW5kb3cuY291cnNld2FyZS5jbG9zZU9zbW9GaW5nZXJSZWFkKSB7XG5cdFx0XHRpZiAodGhpcy5pc09wZW5lZE9zbW9GaW5nZXJSZWFkKSB7XG5cdFx0XHRcdHdpbmRvdy5jb3Vyc2V3YXJlLmNsb3NlT3Ntb0ZpbmdlclJlYWQoKVxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblxuXG5cblxuXG59KTtcbiJdfQ== -//------QC-SOURCE-SPLIT------ - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/OP15/script/xstate.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}(function (global){ -"use strict"; -cc._RF.push(module, 'ccc6ebxJZFI24GNYY/uty5V', 'xstate'); -// OP15/script/xstate.js + return this.scheduler.clear(), this.initialized = !1, this.status = t.InterpreterStatus.Stopped, Ht(this.sessionId), this; + }, n.prototype.batch = function (n) { + var a = this; + if (this.status === t.InterpreterStatus.NotStarted && this.options.deferEvents) ;else if (this.status !== t.InterpreterStatus.Running) throw new Error("".concat(n.length, ' event(s) were sent to uninitialized service "').concat(this.machine.id, '". Make sure .start() is called for this service, or set { deferEvents: true } in the service options.')); + this.scheduler.schedule(function () { + var t, + s, + c = a.state, + u = !1, + h = [], + f = function f(t) { + var n = L(t); + a.forward(n), c = jt(a, function () { + return a.machine.transition(c, n); + }), h.push.apply(h, o([], i(c.actions.map(function (t) { + return r = c, i = (n = t).exec, _e(_e({}, n), { + exec: void 0 !== i ? function () { + return i(r.context, r.event, { + action: n, + state: r, + _event: r._event + }); + } : void 0 + }); + var n, r, i; + })), !1)), u = u || !!c.changed; + }; -"use strict"; + try { + for (var l = r(n), d = l.next(); !d.done; d = l.next()) { + f(d.value); + } + } catch (e) { + t = { + error: e + }; + } finally { + try { + d && !d.done && (s = l["return"]) && s.call(l); + } finally { + if (t) throw t.error; + } + } -!function (t, e) { - "object" == typeof exports && "undefined" != typeof module ? e(exports) : "function" == typeof define && define.amd ? define(["exports"], e) : e((t = "undefined" != typeof globalThis ? globalThis : t || self).XState = {}); -}(void 0, function (t) { - "use strict"; - /*! ***************************************************************************** - Copyright (c) Microsoft Corporation. - - Permission to use, copy, modify, and/or distribute this software for any - purpose with or without fee is hereby granted. - - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH - REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY - AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM - LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR - OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - PERFORMANCE OF THIS SOFTWARE. - ***************************************************************************** */ + c.changed = u, c.actions = h, a.update(c, L(n[n.length - 1])); + }); + }, n.prototype.sender = function (t) { + return this.send.bind(this, t); + }, n.prototype.nextState = function (t) { + var e = this, + n = L(t); + if (0 === n.name.indexOf(ot) && !this.state.nextEvents.some(function (t) { + return 0 === t.indexOf(ot); + })) throw n.data.data; + return jt(this, function () { + return e.machine.transition(e.state, n); + }); + }, n.prototype.forward = function (t) { + var e, n; - var _e = function e() { - return (_e = Object.assign || function (t) { - for (var e, n = 1, r = arguments.length; n < r; n++) { - for (var i in e = arguments[n]) { - Object.prototype.hasOwnProperty.call(e, i) && (t[i] = e[i]); + try { + for (var i = r(this.forwardTo), o = i.next(); !o.done; o = i.next()) { + var a = o.value, + s = this.children.get(a); + if (!s) throw new Error("Unable to forward event '".concat(t, "' from interpreter '").concat(this.id, "' to nonexistant child '").concat(a, "'.")); + s.send(t); + } + } catch (t) { + e = { + error: t + }; + } finally { + try { + o && !o.done && (n = i["return"]) && n.call(i); + } finally { + if (e) throw e.error; } } + }, n.prototype.defer = function (t) { + var e = this; + this.delayedEventsMap[t.id] = this.clock.setTimeout(function () { + t.to ? e.sendTo(t._event, t.to) : e.send(t._event); + }, t.delay); + }, n.prototype.cancel = function (t) { + this.clock.clearTimeout(this.delayedEventsMap[t]), delete this.delayedEventsMap[t]; + }, n.prototype.exec = function (e, n, r) { + void 0 === r && (r = this.machine.options.actions); + var i = n.context, + o = n._event, + a = e.exec || ft(e.type, r), + s = N(a) ? a : a ? a.exec : e.exec; + if (s) try { + return s(i, o.data, { + action: e, + state: this.state, + _event: o + }); + } catch (t) { + throw this.parent && this.parent.send({ + type: "xstate.error", + data: t + }), t; + } - return t; - }).apply(this, arguments); - }; - - function n(t, e) { - var n = {}; - - for (var r in t) { - Object.prototype.hasOwnProperty.call(t, r) && e.indexOf(r) < 0 && (n[r] = t[r]); - } + switch (e.type) { + case Y: + var c = e; + if ("number" == typeof c.delay) return void this.defer(c); + c.to ? this.sendTo(c._event, c.to) : this.send(c._event); + break; - if (null != t && "function" == typeof Object.getOwnPropertySymbols) { - var i = 0; + case Z: + this.cancel(e.sendId); + break; - for (r = Object.getOwnPropertySymbols(t); i < r.length; i++) { - e.indexOf(r[i]) < 0 && Object.prototype.propertyIsEnumerable.call(t, r[i]) && (n[r[i]] = t[r[i]]); - } - } + case K: + var u = e.activity; + if (!this.state.activities[u.id || u.type]) break; - return n; - } - - function r(t) { - var e = "function" == typeof Symbol && Symbol.iterator, - n = e && t[e], - r = 0; - if (n) return n.call(t); - if (t && "number" == typeof t.length) return { - next: function next() { - return t && r >= t.length && (t = void 0), { - value: t && t[r++], - done: !t - }; - } - }; - throw new TypeError(e ? "Object is not iterable." : "Symbol.iterator is not defined."); - } - - function i(t, e) { - var n = "function" == typeof Symbol && t[Symbol.iterator]; - if (!n) return t; - var r, - i, - o = n.call(t), - a = []; - - try { - for (; (void 0 === e || e-- > 0) && !(r = o.next()).done;) { - a.push(r.value); - } - } catch (t) { - i = { - error: t - }; - } finally { - try { - r && !r.done && (n = o["return"]) && n.call(o); - } finally { - if (i) throw i.error; - } - } - - return a; - } - - function o(t, e, n) { - if (n || 2 === arguments.length) for (var r, i = 0, o = e.length; i < o; i++) { - !r && i in e || (r || (r = Array.prototype.slice.call(e, 0, i)), r[i] = e[i]); - } - return t.concat(r || Array.prototype.slice.call(e)); - } - - var a = {}; - - function s(t) { - return Object.keys(t); - } - - function c(t, e, n) { - void 0 === n && (n = "."); - var r = f(t, n), - i = f(e, n); - return A(i) ? !!A(r) && i === r : A(r) ? r in i : s(r).every(function (t) { - return t in i && c(r[t], i[t]); - }); - } - - function u(t) { - try { - return A(t) || "number" == typeof t ? "".concat(t) : t.type; - } catch (t) { - throw new Error("Events must be strings or objects with a string event.type property."); - } - } - - function h(t, e) { - try { - return T(t) ? t : t.toString().split(e); - } catch (e) { - throw new Error("'".concat(t, "' is not a valid state path.")); - } - } - - function f(t, e) { - return "object" == typeof (n = t) && "value" in n && "context" in n && "event" in n && "_event" in n ? t.value : T(t) ? l(t) : "string" != typeof t ? t : l(h(t, e)); - var n; - } - - function l(t) { - if (1 === t.length) return t[0]; - - for (var e = {}, n = e, r = 0; r < t.length - 1; r++) { - r === t.length - 2 ? n[t[r]] = t[r + 1] : (n[t[r]] = {}, n = n[t[r]]); - } - - return e; - } - - function d(t, e) { - for (var n = {}, r = s(t), i = 0; i < r.length; i++) { - var o = r[i]; - n[o] = e(t[o], o, t, i); - } + if (u.type === t.ActionTypes.Invoke) { + var h = M(u.src), + f = this.machine.options.services ? this.machine.options.services[h.type] : void 0, + l = u.id, + d = u.data, + p = "autoForward" in u ? u.autoForward : !!u.forward; + if (!f) return; + var v = d ? x(d, i, o) : void 0; + if ("string" == typeof f) return; + var y = N(f) ? f(i, o.data, { + data: v, + src: h, + meta: u.meta + }) : f; + if (!y) return; + var g = void 0; + k(y) && (y = v ? y.withContext(v) : y, g = { + autoForward: p + }), this.spawn(y, l, g); + } else this.spawnActivity(u); - return n; - } + break; - function p(t, e, n) { - var i, - o, - a = {}; + case Q: + this.stopChild(e.activity.id); + break; - try { - for (var c = r(s(t)), u = c.next(); !u.done; u = c.next()) { - var h = u.value, - f = t[h]; - n(f) && (a[h] = e(f, h, t)); - } - } catch (t) { - i = { - error: t - }; - } finally { - try { - u && !u.done && (o = c["return"]) && o.call(c); - } finally { - if (i) throw i.error; + case nt: + var m = e.label, + S = e.value; + m ? this.logger(m, S) : this.logger(S); } - } - - return a; - } - - var v = function v(t) { - return function (e) { - var n, - i, - o = e; - - try { - for (var a = r(t), s = a.next(); !s.done; s = a.next()) { - o = o[s.value]; + }, n.prototype.removeChild = function (t) { + var e; + this.children["delete"](t), this.forwardTo["delete"](t), null === (e = this.state) || void 0 === e || delete e.children[t]; + }, n.prototype.stopChild = function (t) { + var e = this.children.get(t); + e && (this.removeChild(t), N(e.stop) && e.stop()); + }, n.prototype.spawn = function (t, n, r) { + if (w(t)) return this.spawnPromise(Promise.resolve(t), n); + if (N(t)) return this.spawnCallback(t, n); + if (function (t) { + try { + return "function" == typeof t.send; + } catch (t) { + return !1; } - } catch (t) { - n = { - error: t - }; - } finally { + }(o = t) && "id" in o) return this.spawnActor(t, n); + if (function (t) { try { - s && !s.done && (i = a["return"]) && i.call(a); - } finally { - if (n) throw n.error; + return "subscribe" in t && N(t.subscribe); + } catch (t) { + return !1; } - } - - return o; - }; - }; + }(t)) return this.spawnObservable(t, n); + if (k(t)) return this.spawnMachine(t, _e(_e({}, r), { + id: n + })); + if (null !== (i = t) && "object" == typeof i && "transition" in i && "function" == typeof i.transition) return this.spawnBehavior(t, n); + throw new Error('Unable to spawn entity "'.concat(n, '" of type "').concat(typeof t, '".')); + var i, o; + }, n.prototype.spawnMachine = function (t, r) { + var i = this; + void 0 === r && (r = {}); - function y(t) { - return t ? A(t) ? [[t]] : g(s(t).map(function (e) { - var n = t[e]; - return "string" == typeof n || n && Object.keys(n).length ? y(t[e]).map(function (t) { - return [e].concat(t); - }) : [[e]]; - })) : [[]]; - } + var o = new n(t, _e(_e({}, this.options), { + parent: this, + id: r.id || t.id + })), + a = _e(_e({}, Yt), r); - function g(t) { - var e; - return (e = []).concat.apply(e, o([], i(t), !1)); - } + a.sync && o.onTransition(function (t) { + i.send(st, { + state: t, + id: o.id + }); + }); + var s = o; + return this.children.set(o.id, s), a.autoForward && this.forwardTo.add(o.id), o.onDone(function (t) { + i.removeChild(o.id), i.send(L(t, { + origin: o.id + })); + }).start(), s; + }, n.prototype.spawnBehavior = function (t, e) { + var n = Qt(t, { + id: e, + parent: this + }); + return this.children.set(e, n), n; + }, n.prototype.spawnPromise = function (t, e) { + var n, + r = this, + i = !1; + t.then(function (t) { + i || (n = t, r.removeChild(e), r.send(L(Nt(e, t), { + origin: e + }))); + }, function (t) { + if (!i) { + r.removeChild(e); + var n = At(e, t); - function m(t) { - return T(t) ? t : [t]; - } - - function S(t) { - return void 0 === t ? [] : m(t); - } - - function x(t, e, n) { - var i, o; - if (N(t)) return t(e, n.data); - var a = {}; - - try { - for (var s = r(Object.keys(t)), c = s.next(); !c.done; c = s.next()) { - var u = c.value, - h = t[u]; - N(h) ? a[u] = h(e, n.data) : a[u] = h; - } - } catch (t) { - i = { - error: t + try { + r.send(L(n, { + origin: e + })); + } catch (t) { + r.devTools && r.devTools.send(n, r.state), r.machine.strict && r.stop(); + } + } + }); + var o = { + id: e, + send: function send() {}, + subscribe: function subscribe(e, n, r) { + var i = z(e, n, r), + o = !1; + return t.then(function (t) { + o || (i.next(t), o || i.complete()); + }, function (t) { + o || i.error(t); + }), { + unsubscribe: function unsubscribe() { + return o = !0; + } + }; + }, + stop: function stop() { + i = !0; + }, + toJSON: function toJSON() { + return { + id: e + }; + }, + getSnapshot: function getSnapshot() { + return n; + } }; - } finally { + return this.children.set(e, o), o; + }, n.prototype.spawnCallback = function (t, e) { + var n, + r, + i = this, + o = !1, + a = new Set(), + s = new Set(); + try { - c && !c.done && (o = s["return"]) && o.call(s); - } finally { - if (i) throw i.error; + r = t(function (t) { + n = t, s.forEach(function (e) { + return e(t); + }), o || i.send(L(t, { + origin: e + })); + }, function (t) { + a.add(t); + }); + } catch (t) { + this.send(At(e, t)); } - } - return a; - } + if (w(r)) return this.spawnPromise(r, e); + var c = { + id: e, + send: function send(t) { + return a.forEach(function (e) { + return e(t); + }); + }, + subscribe: function subscribe(t) { + return s.add(t), { + unsubscribe: function unsubscribe() { + s["delete"](t); + } + }; + }, + stop: function stop() { + o = !0, N(r) && r(); + }, + toJSON: function toJSON() { + return { + id: e + }; + }, + getSnapshot: function getSnapshot() { + return n; + } + }; + return this.children.set(e, c), c; + }, n.prototype.spawnObservable = function (t, e) { + var n, + r = this, + i = t.subscribe(function (t) { + n = t, r.send(L(t, { + origin: e + })); + }, function (t) { + r.removeChild(e), r.send(L(At(e, t), { + origin: e + })); + }, function () { + r.removeChild(e), r.send(L(Nt(e), { + origin: e + })); + }), + o = { + id: e, + send: function send() {}, + subscribe: function subscribe(e, n, r) { + return t.subscribe(e, n, r); + }, + stop: function stop() { + return i.unsubscribe(); + }, + getSnapshot: function getSnapshot() { + return n; + }, + toJSON: function toJSON() { + return { + id: e + }; + } + }; + return this.children.set(e, o), o; + }, n.prototype.spawnActor = function (t, e) { + return this.children.set(e, t), t; + }, n.prototype.spawnActivity = function (t) { + var e = this.machine.options && this.machine.options.activities ? this.machine.options.activities[t.type] : void 0; - function w(t) { - return t instanceof Promise || !(null === t || !N(t) && "object" != typeof t || !N(t.then)); - } + if (e) { + var n = e(this.state.context, t); + this.spawnEffect(t.id, n); + } + }, n.prototype.spawnEffect = function (t, e) { + this.children.set(t, { + id: t, + send: function send() {}, + subscribe: function subscribe() { + return { + unsubscribe: function unsubscribe() {} + }; + }, + stop: e || void 0, + getSnapshot: function getSnapshot() {}, + toJSON: function toJSON() { + return { + id: t + }; + } + }); + }, n.prototype.attachDev = function () { + var t = Gt(); - function b(t, e) { - var n, - o, - a = i([[], []], 2), - s = a[0], - c = a[1]; + if (this.options.devTools && t) { + if (t.__REDUX_DEVTOOLS_EXTENSION__) { + var n = "object" == typeof this.options.devTools ? this.options.devTools : void 0; + this.devTools = t.__REDUX_DEVTOOLS_EXTENSION__.connect(_e(_e({ + name: this.id, + autoPause: !0, + stateSanitizer: function stateSanitizer(t) { + return { + value: t.value, + context: t.context, + actions: t.actions + }; + } + }, n), { + features: _e({ + jump: !1, + skip: !1 + }, n ? n.features : void 0) + }), this.machine), this.devTools.init(this.state); + } - try { - for (var u = r(t), h = u.next(); !h.done; h = u.next()) { - var f = h.value; - e(f) ? s.push(f) : c.push(f); + Kt(this); } - } catch (t) { - n = { - error: t + }, n.prototype.toJSON = function () { + return { + id: this.id }; - } finally { - try { - h && !h.done && (o = u["return"]) && o.call(u); - } finally { - if (n) throw n.error; - } - } - - return [s, c]; - } + }, n.prototype[P] = function () { + return this; + }, n.prototype.getSnapshot = function () { + return this.status === t.InterpreterStatus.NotStarted ? this.initialState : this._state; + }, n.defaultOptions = function (t) { + return { + execute: !0, + deferEvents: !0, + clock: { + setTimeout: function (_setTimeout) { + function setTimeout(_x, _x2) { + return _setTimeout.apply(this, arguments); + } - function _(t, e) { - return d(t.states, function (t, n) { - if (t) { - var r = (A(e) ? void 0 : e[n]) || (t ? t.current : void 0); - if (r) return { - current: r, - states: _(t, r) - }; - } - }); - } + setTimeout.toString = function () { + return _setTimeout.toString(); + }; - function E(t, e, n, i) { - return t ? n.reduce(function (t, n) { - var o, - a, - c = n.assignment, - u = { - state: i, - action: n, - _event: e - }, - h = {}; - if (N(c)) h = c(t, e.data, u);else try { - for (var f = r(s(c)), l = f.next(); !l.done; l = f.next()) { - var d = l.value, - p = c[d]; - h[d] = N(p) ? p(t, e.data, u) : p; - } - } catch (t) { - o = { - error: t - }; - } finally { - try { - l && !l.done && (a = f["return"]) && a.call(f); - } finally { - if (o) throw o.error; - } - } - return Object.assign({}, t, h); - }, t) : t; - } - - function T(t) { - return Array.isArray(t); - } - - function N(t) { - return "function" == typeof t; - } - - function A(t) { - return "string" == typeof t; - } - - function O(t, e) { - if (t) return A(t) ? { - type: "xstate.guard", - name: t, - predicate: e ? e[t] : void 0 - } : N(t) ? { - type: "xstate.guard", - name: t.name, - predicate: t - } : t; - } - - var P = function () { - return "function" == typeof Symbol && Symbol.observable || "@@observable"; - }(); + return setTimeout; + }(function (t, e) { + return setTimeout(t, e); + }), + clearTimeout: function (_clearTimeout) { + function clearTimeout(_x3) { + return _clearTimeout.apply(this, arguments); + } - function k(t) { - try { - return "__xstatenode" in t; - } catch (t) { - return !1; - } - } + clearTimeout.toString = function () { + return _clearTimeout.toString(); + }; - var I, - j, - C = function () { - var t = 0; - return function () { - return (++t).toString(16); - }; + return clearTimeout; + }(function (t) { + return clearTimeout(t); + }) + }, + logger: t.console.log.bind(console), + devTools: !1 + }; + }("undefined" != typeof self ? self : global), n.interpret = te, n; }(); - function V(t, n) { - return A(t) || "number" == typeof t ? _e({ - type: t - }, n) : t; - } - - function L(t, n) { - if (!A(t) && "$$type" in t && "scxml" === t.$$type) return t; - var r = V(t); - return _e({ - name: r.type, - data: r, - $$type: "scxml", - type: "external" - }, n); - } - - function D(t, n) { - return m(n).map(function (n) { - return void 0 === n || "string" == typeof n || k(n) ? { - target: n, - event: t - } : _e(_e({}, n), { - event: t - }); - }); - } - - function R(t, e, n, r, i) { - var o = t.options.guards, - a = { - state: i, - cond: e, - _event: r - }; - if ("xstate.guard" === e.type) return ((null == o ? void 0 : o[e.name]) || e.predicate)(n, r.data, a); - var s = o[e.type]; - if (!s) throw new Error("Guard '".concat(e.type, "' is not implemented on machine '").concat(t.id, "'.")); - return s(n, r.data, a); - } - - function M(t) { - return "string" == typeof t ? { - type: t - } : t; - } - - function z(t, e, n) { - if ("object" == typeof t) return t; - - var r = function r() {}; - - return { - next: t, - error: e || r, - complete: n || r - }; + function te(t, e) { + return new Zt(t, e); } - (I = t.ActionTypes || (t.ActionTypes = {})).Start = "xstate.start", I.Stop = "xstate.stop", I.Raise = "xstate.raise", I.Send = "xstate.send", I.Cancel = "xstate.cancel", I.NullEvent = "", I.Assign = "xstate.assign", I.After = "xstate.after", I.DoneState = "done.state", I.DoneInvoke = "done.invoke", I.Log = "xstate.log", I.Init = "xstate.init", I.Invoke = "xstate.invoke", I.ErrorExecution = "error.execution", I.ErrorCommunication = "error.communication", I.ErrorPlatform = "error.platform", I.ErrorCustom = "xstate.error", I.Update = "xstate.update", I.Pure = "xstate.pure", I.Choose = "xstate.choose", (j = t.SpecialTargets || (t.SpecialTargets = {})).Parent = "#_parent", j.Internal = "#_internal"; - - var F = function F(t) { - return "atomic" === t.type || "final" === t.type; + var ee = { + raise: vt, + send: yt, + sendParent: gt, + sendUpdate: mt, + log: function log(t, e) { + return void 0 === t && (t = St), { + type: nt, + label: e, + expr: t + }; + }, + cancel: xt, + start: wt, + stop: bt, + assign: _t, + after: Et, + done: Tt, + respond: function respond(t, n) { + return yt(t, _e(_e({}, n), { + to: function to(t, e, n) { + return n._event.origin; + } + })); + }, + forwardTo: Ot, + escalate: function escalate(n, r) { + return gt(function (t, e, r) { + return { + type: at, + data: N(n) ? n(t, e, r) : n + }; + }, _e(_e({}, r), { + to: t.SpecialTargets.Parent + })); + }, + choose: function choose(e) { + return { + type: t.ActionTypes.Choose, + conds: e + }; + }, + pure: function pure(e) { + return { + type: t.ActionTypes.Pure, + get: e + }; + } }; - - function U(t) { - return s(t.states).map(function (e) { - return t.states[e]; - }); - } - - function B(t) { - var e = [t]; - return F(t) ? e : e.concat(g(U(t).map(B))); - } - - function J(t, e) { - var n, - i, - o, - a, - s, - c, - u, - h, - f = q(new Set(t)), - l = new Set(e); + t.Interpreter = Zt, t.Machine = function (t, e, n) { + return void 0 === n && (n = t.context), new zt(t, e, n); + }, t.State = kt, t.StateNode = zt, t.actions = ee, t.assign = _t, t.createMachine = function (t, e) { + return new zt(t, e); + }, t.createSchema = function (t) { + return t; + }, t.doneInvoke = Nt, t.forwardTo = Ot, t.interpret = te, t.mapState = function (t, e) { + var n, i, o; try { - for (var d = r(l), p = d.next(); !p.done; p = d.next()) { - for (var v = (E = p.value).parent; v && !l.has(v);) { - l.add(v), v = v.parent; - } + for (var a = r(s(t)), u = a.next(); !u.done; u = a.next()) { + var h = u.value; + c(h, e) && (!o || e.length > o.length) && (o = h); } } catch (t) { n = { @@ -3309,42 +3285,24 @@ cc._RF.push(module, 'ccc6ebxJZFI24GNYY/uty5V', 'xstate'); }; } finally { try { - p && !p.done && (i = d["return"]) && i.call(d); + u && !u.done && (i = a["return"]) && i.call(a); } finally { if (n) throw n.error; } } - var y = q(l); + return t[o]; + }, t.matchState = function (t, e, n) { + var o, + a, + s = kt.from(t, t instanceof kt ? t.context : void 0); try { - for (var g = r(l), m = g.next(); !m.done; m = g.next()) { - if ("compound" !== (E = m.value).type || y.get(E) && y.get(E).length) { - if ("parallel" === E.type) try { - for (var S = (s = void 0, r(U(E))), x = S.next(); !x.done; x = S.next()) { - var w = x.value; - "history" !== w.type && (l.has(w) || (l.add(w), f.get(w) ? f.get(w).forEach(function (t) { - return l.add(t); - }) : w.initialStateNodes.forEach(function (t) { - return l.add(t); - }))); - } - } catch (t) { - s = { - error: t - }; - } finally { - try { - x && !x.done && (c = S["return"]) && c.call(S); - } finally { - if (s) throw s.error; - } - } - } else f.get(E) ? f.get(E).forEach(function (t) { - return l.add(t); - }) : E.initialStateNodes.forEach(function (t) { - return l.add(t); - }); + for (var c = r(e), u = c.next(); !u.done; u = c.next()) { + var h = i(u.value, 2), + f = h[0], + l = h[1]; + if (s.matches(f)) return l(s); } } catch (t) { o = { @@ -3352,2478 +3310,3021 @@ cc._RF.push(module, 'ccc6ebxJZFI24GNYY/uty5V', 'xstate'); }; } finally { try { - m && !m.done && (a = g["return"]) && a.call(g); + u && !u.done && (a = c["return"]) && a.call(c); } finally { if (o) throw o.error; } } - try { - for (var b = r(l), _ = b.next(); !_.done; _ = b.next()) { - var E; + return n(s); + }, t.matchesState = c, t.send = yt, t.sendParent = gt, t.sendUpdate = mt, t.spawn = function (t, n) { + var r = function (t) { + return A(t) ? _e(_e({}, Yt), { + name: t + }) : _e(_e(_e({}, Yt), { + name: C() + }), t); + }(n); - for (v = (E = _.value).parent; v && !l.has(v);) { - l.add(v), v = v.parent; - } - } - } catch (t) { - u = { - error: t - }; - } finally { - try { - _ && !_.done && (h = b["return"]) && h.call(b); - } finally { - if (u) throw u.error; - } - } + return function (e) { + return e ? e.spawn(t, r.name, r) : Vt(t, r.name); + }(It[It.length - 1]); + }, Object.defineProperty(t, "__esModule", { + value: !0 + }); +}); - return l; - } +cc._RF.pop(); - function q(t) { - var e, - n, - i = new Map(); +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9hc3NldHMvT1AxNS9zY3JpcHQveHN0YXRlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLENBQUMsVUFBUyxDQUFULEVBQVcsQ0FBWCxFQUFhO0FBQUMsY0FBVSxPQUFPLE9BQWpCLElBQTBCLGVBQWEsT0FBTyxNQUE5QyxHQUFxRCxDQUFDLENBQUMsT0FBRCxDQUF0RCxHQUFnRSxjQUFZLE9BQU8sTUFBbkIsSUFBMkIsTUFBTSxDQUFDLEdBQWxDLEdBQXNDLE1BQU0sQ0FBQyxDQUFDLFNBQUQsQ0FBRCxFQUFhLENBQWIsQ0FBNUMsR0FBNEQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLGVBQWEsT0FBTyxVQUFwQixHQUErQixVQUEvQixHQUEwQyxDQUFDLElBQUUsSUFBaEQsRUFBc0QsTUFBdEQsR0FBNkQsRUFBOUQsQ0FBN0g7QUFBK0wsQ0FBN00sU0FBb04sVUFBUyxDQUFULEVBQVc7QUFBQztBQUNqTztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUFvRixNQUFJLEVBQUMsR0FBQyxhQUFVO0FBQUMsV0FBTSxDQUFDLEVBQUMsR0FBQyxNQUFNLENBQUMsTUFBUCxJQUFlLFVBQVMsQ0FBVCxFQUFXO0FBQUMsV0FBSSxJQUFJLENBQUosRUFBTSxDQUFDLEdBQUMsQ0FBUixFQUFVLENBQUMsR0FBQyxTQUFTLENBQUMsTUFBMUIsRUFBaUMsQ0FBQyxHQUFDLENBQW5DLEVBQXFDLENBQUMsRUFBdEM7QUFBeUMsYUFBSSxJQUFJLENBQVIsSUFBYSxDQUFDLEdBQUMsU0FBUyxDQUFDLENBQUQsQ0FBeEI7QUFBNEIsVUFBQSxNQUFNLENBQUMsU0FBUCxDQUFpQixjQUFqQixDQUFnQyxJQUFoQyxDQUFxQyxDQUFyQyxFQUF1QyxDQUF2QyxNQUE0QyxDQUFDLENBQUMsQ0FBRCxDQUFELEdBQUssQ0FBQyxDQUFDLENBQUQsQ0FBbEQ7QUFBNUI7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LEVBQUosQ0FBRixFQUFVO0FBQUMsUUFBQSxJQUFJLEVBQUM7QUFBTixPQUFWLENBQU4sR0FBMEIsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRCxFQUFJLEVBQUosQ0FBRixFQUFVO0FBQUMsUUFBQSxJQUFJLEVBQUMsQ0FBQztBQUFQLE9BQVYsQ0FBRixFQUF3QixDQUF4QixDQUFsQztBQUE2RCxLQUF6RSxDQUEwRSxDQUExRSxDQUFOOztBQUFtRixXQUFPLFVBQVMsQ0FBVCxFQUFXO0FBQUMsYUFBTyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUYsQ0FBUSxDQUFSLEVBQVUsQ0FBQyxDQUFDLElBQVosRUFBaUIsQ0FBakIsQ0FBRCxHQUFxQixFQUFFLENBQUMsQ0FBRCxFQUFHLENBQUMsQ0FBQyxJQUFMLENBQS9CO0FBQTBDLEtBQXRELENBQXVELEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBSCxHQUFVLENBQVgsQ0FBekQsQ0FBUDtBQUErRSxHQUFuakMsRUFBb2pDLE1BQU0sQ0FBQyxjQUFQLENBQXNCLENBQXRCLEVBQXdCLFlBQXhCLEVBQXFDO0FBQUMsSUFBQSxLQUFLLEVBQUMsQ0FBQztBQUFSLEdBQXJDLENBQXBqQztBQUFxbUMsQ0FkaGdwRCxDQUFEIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIhZnVuY3Rpb24odCxlKXtcIm9iamVjdFwiPT10eXBlb2YgZXhwb3J0cyYmXCJ1bmRlZmluZWRcIiE9dHlwZW9mIG1vZHVsZT9lKGV4cG9ydHMpOlwiZnVuY3Rpb25cIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoW1wiZXhwb3J0c1wiXSxlKTplKCh0PVwidW5kZWZpbmVkXCIhPXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6dHx8c2VsZikuWFN0YXRlPXt9KX0odGhpcywoZnVuY3Rpb24odCl7XCJ1c2Ugc3RyaWN0XCI7XG4vKiEgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cblxuICAgIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueVxuICAgIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cblxuICAgIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEhcbiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcbiAgICBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXG4gICAgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NXG4gICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcbiAgICBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXG4gICAgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cbiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL3ZhciBlPWZ1bmN0aW9uKCl7cmV0dXJuKGU9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MSxyPWFyZ3VtZW50cy5sZW5ndGg7bjxyO24rKylmb3IodmFyIGkgaW4gZT1hcmd1bWVudHNbbl0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsaSkmJih0W2ldPWVbaV0pO3JldHVybiB0fSkuYXBwbHkodGhpcyxhcmd1bWVudHMpfTtmdW5jdGlvbiBuKHQsZSl7dmFyIG49e307Zm9yKHZhciByIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikmJmUuaW5kZXhPZihyKTwwJiYobltyXT10W3JdKTtpZihudWxsIT10JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgaT0wO2ZvcihyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCk7aTxyLmxlbmd0aDtpKyspZS5pbmRleE9mKHJbaV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh0LHJbaV0pJiYobltyW2ldXT10W3JbaV1dKX1yZXR1cm4gbn1mdW5jdGlvbiByKHQpe3ZhciBlPVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yLG49ZSYmdFtlXSxyPTA7aWYobilyZXR1cm4gbi5jYWxsKHQpO2lmKHQmJlwibnVtYmVyXCI9PXR5cGVvZiB0Lmxlbmd0aClyZXR1cm57bmV4dDpmdW5jdGlvbigpe3JldHVybiB0JiZyPj10Lmxlbmd0aCYmKHQ9dm9pZCAwKSx7dmFsdWU6dCYmdFtyKytdLGRvbmU6IXR9fX07dGhyb3cgbmV3IFR5cGVFcnJvcihlP1wiT2JqZWN0IGlzIG5vdCBpdGVyYWJsZS5cIjpcIlN5bWJvbC5pdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIil9ZnVuY3Rpb24gaSh0LGUpe3ZhciBuPVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmdFtTeW1ib2wuaXRlcmF0b3JdO2lmKCFuKXJldHVybiB0O3ZhciByLGksbz1uLmNhbGwodCksYT1bXTt0cnl7Zm9yKDsodm9pZCAwPT09ZXx8ZS0tID4wKSYmIShyPW8ubmV4dCgpKS5kb25lOylhLnB1c2goci52YWx1ZSl9Y2F0Y2godCl7aT17ZXJyb3I6dH19ZmluYWxseXt0cnl7ciYmIXIuZG9uZSYmKG49by5yZXR1cm4pJiZuLmNhbGwobyl9ZmluYWxseXtpZihpKXRocm93IGkuZXJyb3J9fXJldHVybiBhfWZ1bmN0aW9uIG8odCxlLG4pe2lmKG58fDI9PT1hcmd1bWVudHMubGVuZ3RoKWZvcih2YXIgcixpPTAsbz1lLmxlbmd0aDtpPG87aSsrKSFyJiZpIGluIGV8fChyfHwocj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlLDAsaSkpLHJbaV09ZVtpXSk7cmV0dXJuIHQuY29uY2F0KHJ8fEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGUpKX12YXIgYT17fTtmdW5jdGlvbiBzKHQpe3JldHVybiBPYmplY3Qua2V5cyh0KX1mdW5jdGlvbiBjKHQsZSxuKXt2b2lkIDA9PT1uJiYobj1cIi5cIik7dmFyIHI9Zih0LG4pLGk9ZihlLG4pO3JldHVybiBBKGkpPyEhQShyKSYmaT09PXI6QShyKT9yIGluIGk6cyhyKS5ldmVyeSgoZnVuY3Rpb24odCl7cmV0dXJuIHQgaW4gaSYmYyhyW3RdLGlbdF0pfSkpfWZ1bmN0aW9uIHUodCl7dHJ5e3JldHVybiBBKHQpfHxcIm51bWJlclwiPT10eXBlb2YgdD9cIlwiLmNvbmNhdCh0KTp0LnR5cGV9Y2F0Y2godCl7dGhyb3cgbmV3IEVycm9yKFwiRXZlbnRzIG11c3QgYmUgc3RyaW5ncyBvciBvYmplY3RzIHdpdGggYSBzdHJpbmcgZXZlbnQudHlwZSBwcm9wZXJ0eS5cIil9fWZ1bmN0aW9uIGgodCxlKXt0cnl7cmV0dXJuIFQodCk/dDp0LnRvU3RyaW5nKCkuc3BsaXQoZSl9Y2F0Y2goZSl7dGhyb3cgbmV3IEVycm9yKFwiJ1wiLmNvbmNhdCh0LFwiJyBpcyBub3QgYSB2YWxpZCBzdGF0ZSBwYXRoLlwiKSl9fWZ1bmN0aW9uIGYodCxlKXtyZXR1cm5cIm9iamVjdFwiPT10eXBlb2Yobj10KSYmXCJ2YWx1ZVwiaW4gbiYmXCJjb250ZXh0XCJpbiBuJiZcImV2ZW50XCJpbiBuJiZcIl9ldmVudFwiaW4gbj90LnZhbHVlOlQodCk/bCh0KTpcInN0cmluZ1wiIT10eXBlb2YgdD90OmwoaCh0LGUpKTt2YXIgbn1mdW5jdGlvbiBsKHQpe2lmKDE9PT10Lmxlbmd0aClyZXR1cm4gdFswXTtmb3IodmFyIGU9e30sbj1lLHI9MDtyPHQubGVuZ3RoLTE7cisrKXI9PT10Lmxlbmd0aC0yP25bdFtyXV09dFtyKzFdOihuW3Rbcl1dPXt9LG49blt0W3JdXSk7cmV0dXJuIGV9ZnVuY3Rpb24gZCh0LGUpe2Zvcih2YXIgbj17fSxyPXModCksaT0wO2k8ci5sZW5ndGg7aSsrKXt2YXIgbz1yW2ldO25bb109ZSh0W29dLG8sdCxpKX1yZXR1cm4gbn1mdW5jdGlvbiBwKHQsZSxuKXt2YXIgaSxvLGE9e307dHJ5e2Zvcih2YXIgYz1yKHModCkpLHU9Yy5uZXh0KCk7IXUuZG9uZTt1PWMubmV4dCgpKXt2YXIgaD11LnZhbHVlLGY9dFtoXTtuKGYpJiYoYVtoXT1lKGYsaCx0KSl9fWNhdGNoKHQpe2k9e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e3UmJiF1LmRvbmUmJihvPWMucmV0dXJuKSYmby5jYWxsKGMpfWZpbmFsbHl7aWYoaSl0aHJvdyBpLmVycm9yfX1yZXR1cm4gYX12YXIgdj1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIG4saSxvPWU7dHJ5e2Zvcih2YXIgYT1yKHQpLHM9YS5uZXh0KCk7IXMuZG9uZTtzPWEubmV4dCgpKXtvPW9bcy52YWx1ZV19fWNhdGNoKHQpe249e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e3MmJiFzLmRvbmUmJihpPWEucmV0dXJuKSYmaS5jYWxsKGEpfWZpbmFsbHl7aWYobil0aHJvdyBuLmVycm9yfX1yZXR1cm4gb319O2Z1bmN0aW9uIHkodCl7cmV0dXJuIHQ/QSh0KT9bW3RdXTpnKHModCkubWFwKChmdW5jdGlvbihlKXt2YXIgbj10W2VdO3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiBufHxuJiZPYmplY3Qua2V5cyhuKS5sZW5ndGg/eSh0W2VdKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybltlXS5jb25jYXQodCl9KSk6W1tlXV19KSkpOltbXV19ZnVuY3Rpb24gZyh0KXt2YXIgZTtyZXR1cm4oZT1bXSkuY29uY2F0LmFwcGx5KGUsbyhbXSxpKHQpLCExKSl9ZnVuY3Rpb24gbSh0KXtyZXR1cm4gVCh0KT90Olt0XX1mdW5jdGlvbiBTKHQpe3JldHVybiB2b2lkIDA9PT10P1tdOm0odCl9ZnVuY3Rpb24geCh0LGUsbil7dmFyIGksbztpZihOKHQpKXJldHVybiB0KGUsbi5kYXRhKTt2YXIgYT17fTt0cnl7Zm9yKHZhciBzPXIoT2JqZWN0LmtleXModCkpLGM9cy5uZXh0KCk7IWMuZG9uZTtjPXMubmV4dCgpKXt2YXIgdT1jLnZhbHVlLGg9dFt1XTtOKGgpP2FbdV09aChlLG4uZGF0YSk6YVt1XT1ofX1jYXRjaCh0KXtpPXtlcnJvcjp0fX1maW5hbGx5e3RyeXtjJiYhYy5kb25lJiYobz1zLnJldHVybikmJm8uY2FsbChzKX1maW5hbGx5e2lmKGkpdGhyb3cgaS5lcnJvcn19cmV0dXJuIGF9ZnVuY3Rpb24gdyh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIFByb21pc2V8fCEobnVsbD09PXR8fCFOKHQpJiZcIm9iamVjdFwiIT10eXBlb2YgdHx8IU4odC50aGVuKSl9ZnVuY3Rpb24gYih0LGUpe3ZhciBuLG8sYT1pKFtbXSxbXV0sMikscz1hWzBdLGM9YVsxXTt0cnl7Zm9yKHZhciB1PXIodCksaD11Lm5leHQoKTshaC5kb25lO2g9dS5uZXh0KCkpe3ZhciBmPWgudmFsdWU7ZShmKT9zLnB1c2goZik6Yy5wdXNoKGYpfX1jYXRjaCh0KXtuPXtlcnJvcjp0fX1maW5hbGx5e3RyeXtoJiYhaC5kb25lJiYobz11LnJldHVybikmJm8uY2FsbCh1KX1maW5hbGx5e2lmKG4pdGhyb3cgbi5lcnJvcn19cmV0dXJuW3MsY119ZnVuY3Rpb24gXyh0LGUpe3JldHVybiBkKHQuc3RhdGVzLChmdW5jdGlvbih0LG4pe2lmKHQpe3ZhciByPShBKGUpP3ZvaWQgMDplW25dKXx8KHQ/dC5jdXJyZW50OnZvaWQgMCk7aWYocilyZXR1cm57Y3VycmVudDpyLHN0YXRlczpfKHQscil9fX0pKX1mdW5jdGlvbiBFKHQsZSxuLGkpe3JldHVybiB0P24ucmVkdWNlKChmdW5jdGlvbih0LG4pe3ZhciBvLGEsYz1uLmFzc2lnbm1lbnQsdT17c3RhdGU6aSxhY3Rpb246bixfZXZlbnQ6ZX0saD17fTtpZihOKGMpKWg9Yyh0LGUuZGF0YSx1KTtlbHNlIHRyeXtmb3IodmFyIGY9cihzKGMpKSxsPWYubmV4dCgpOyFsLmRvbmU7bD1mLm5leHQoKSl7dmFyIGQ9bC52YWx1ZSxwPWNbZF07aFtkXT1OKHApP3AodCxlLmRhdGEsdSk6cH19Y2F0Y2godCl7bz17ZXJyb3I6dH19ZmluYWxseXt0cnl7bCYmIWwuZG9uZSYmKGE9Zi5yZXR1cm4pJiZhLmNhbGwoZil9ZmluYWxseXtpZihvKXRocm93IG8uZXJyb3J9fXJldHVybiBPYmplY3QuYXNzaWduKHt9LHQsaCl9KSx0KTp0fWZ1bmN0aW9uIFQodCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCl9ZnVuY3Rpb24gTih0KXtyZXR1cm5cImZ1bmN0aW9uXCI9PXR5cGVvZiB0fWZ1bmN0aW9uIEEodCl7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIHR9ZnVuY3Rpb24gTyh0LGUpe2lmKHQpcmV0dXJuIEEodCk/e3R5cGU6XCJ4c3RhdGUuZ3VhcmRcIixuYW1lOnQscHJlZGljYXRlOmU/ZVt0XTp2b2lkIDB9Ok4odCk/e3R5cGU6XCJ4c3RhdGUuZ3VhcmRcIixuYW1lOnQubmFtZSxwcmVkaWNhdGU6dH06dH12YXIgUD1mdW5jdGlvbigpe3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLm9ic2VydmFibGV8fFwiQEBvYnNlcnZhYmxlXCJ9KCk7ZnVuY3Rpb24gayh0KXt0cnl7cmV0dXJuXCJfX3hzdGF0ZW5vZGVcImluIHR9Y2F0Y2godCl7cmV0dXJuITF9fXZhciBJLGosQz1mdW5jdGlvbigpe3ZhciB0PTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuKCsrdCkudG9TdHJpbmcoMTYpfX0oKTtmdW5jdGlvbiBWKHQsbil7cmV0dXJuIEEodCl8fFwibnVtYmVyXCI9PXR5cGVvZiB0P2Uoe3R5cGU6dH0sbik6dH1mdW5jdGlvbiBMKHQsbil7aWYoIUEodCkmJlwiJCR0eXBlXCJpbiB0JiZcInNjeG1sXCI9PT10LiQkdHlwZSlyZXR1cm4gdDt2YXIgcj1WKHQpO3JldHVybiBlKHtuYW1lOnIudHlwZSxkYXRhOnIsJCR0eXBlOlwic2N4bWxcIix0eXBlOlwiZXh0ZXJuYWxcIn0sbil9ZnVuY3Rpb24gRCh0LG4pe3JldHVybiBtKG4pLm1hcCgoZnVuY3Rpb24obil7cmV0dXJuIHZvaWQgMD09PW58fFwic3RyaW5nXCI9PXR5cGVvZiBufHxrKG4pP3t0YXJnZXQ6bixldmVudDp0fTplKGUoe30sbikse2V2ZW50OnR9KX0pKX1mdW5jdGlvbiBSKHQsZSxuLHIsaSl7dmFyIG89dC5vcHRpb25zLmd1YXJkcyxhPXtzdGF0ZTppLGNvbmQ6ZSxfZXZlbnQ6cn07aWYoXCJ4c3RhdGUuZ3VhcmRcIj09PWUudHlwZSlyZXR1cm4oKG51bGw9PW8/dm9pZCAwOm9bZS5uYW1lXSl8fGUucHJlZGljYXRlKShuLHIuZGF0YSxhKTt2YXIgcz1vW2UudHlwZV07aWYoIXMpdGhyb3cgbmV3IEVycm9yKFwiR3VhcmQgJ1wiLmNvbmNhdChlLnR5cGUsXCInIGlzIG5vdCBpbXBsZW1lbnRlZCBvbiBtYWNoaW5lICdcIikuY29uY2F0KHQuaWQsXCInLlwiKSk7cmV0dXJuIHMobixyLmRhdGEsYSl9ZnVuY3Rpb24gTSh0KXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgdD97dHlwZTp0fTp0fWZ1bmN0aW9uIHoodCxlLG4pe2lmKFwib2JqZWN0XCI9PXR5cGVvZiB0KXJldHVybiB0O3ZhciByPWZ1bmN0aW9uKCl7fTtyZXR1cm57bmV4dDp0LGVycm9yOmV8fHIsY29tcGxldGU6bnx8cn19KEk9dC5BY3Rpb25UeXBlc3x8KHQuQWN0aW9uVHlwZXM9e30pKS5TdGFydD1cInhzdGF0ZS5zdGFydFwiLEkuU3RvcD1cInhzdGF0ZS5zdG9wXCIsSS5SYWlzZT1cInhzdGF0ZS5yYWlzZVwiLEkuU2VuZD1cInhzdGF0ZS5zZW5kXCIsSS5DYW5jZWw9XCJ4c3RhdGUuY2FuY2VsXCIsSS5OdWxsRXZlbnQ9XCJcIixJLkFzc2lnbj1cInhzdGF0ZS5hc3NpZ25cIixJLkFmdGVyPVwieHN0YXRlLmFmdGVyXCIsSS5Eb25lU3RhdGU9XCJkb25lLnN0YXRlXCIsSS5Eb25lSW52b2tlPVwiZG9uZS5pbnZva2VcIixJLkxvZz1cInhzdGF0ZS5sb2dcIixJLkluaXQ9XCJ4c3RhdGUuaW5pdFwiLEkuSW52b2tlPVwieHN0YXRlLmludm9rZVwiLEkuRXJyb3JFeGVjdXRpb249XCJlcnJvci5leGVjdXRpb25cIixJLkVycm9yQ29tbXVuaWNhdGlvbj1cImVycm9yLmNvbW11bmljYXRpb25cIixJLkVycm9yUGxhdGZvcm09XCJlcnJvci5wbGF0Zm9ybVwiLEkuRXJyb3JDdXN0b209XCJ4c3RhdGUuZXJyb3JcIixJLlVwZGF0ZT1cInhzdGF0ZS51cGRhdGVcIixJLlB1cmU9XCJ4c3RhdGUucHVyZVwiLEkuQ2hvb3NlPVwieHN0YXRlLmNob29zZVwiLChqPXQuU3BlY2lhbFRhcmdldHN8fCh0LlNwZWNpYWxUYXJnZXRzPXt9KSkuUGFyZW50PVwiI19wYXJlbnRcIixqLkludGVybmFsPVwiI19pbnRlcm5hbFwiO3ZhciBGPWZ1bmN0aW9uKHQpe3JldHVyblwiYXRvbWljXCI9PT10LnR5cGV8fFwiZmluYWxcIj09PXQudHlwZX07ZnVuY3Rpb24gVSh0KXtyZXR1cm4gcyh0LnN0YXRlcykubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gdC5zdGF0ZXNbZV19KSl9ZnVuY3Rpb24gQih0KXt2YXIgZT1bdF07cmV0dXJuIEYodCk/ZTplLmNvbmNhdChnKFUodCkubWFwKEIpKSl9ZnVuY3Rpb24gSih0LGUpe3ZhciBuLGksbyxhLHMsYyx1LGgsZj1xKG5ldyBTZXQodCkpLGw9bmV3IFNldChlKTt0cnl7Zm9yKHZhciBkPXIobCkscD1kLm5leHQoKTshcC5kb25lO3A9ZC5uZXh0KCkpZm9yKHZhciB2PShFPXAudmFsdWUpLnBhcmVudDt2JiYhbC5oYXModik7KWwuYWRkKHYpLHY9di5wYXJlbnR9Y2F0Y2godCl7bj17ZXJyb3I6dH19ZmluYWxseXt0cnl7cCYmIXAuZG9uZSYmKGk9ZC5yZXR1cm4pJiZpLmNhbGwoZCl9ZmluYWxseXtpZihuKXRocm93IG4uZXJyb3J9fXZhciB5PXEobCk7dHJ5e2Zvcih2YXIgZz1yKGwpLG09Zy5uZXh0KCk7IW0uZG9uZTttPWcubmV4dCgpKXtpZihcImNvbXBvdW5kXCIhPT0oRT1tLnZhbHVlKS50eXBlfHx5LmdldChFKSYmeS5nZXQoRSkubGVuZ3RoKXtpZihcInBhcmFsbGVsXCI9PT1FLnR5cGUpdHJ5e2Zvcih2YXIgUz0ocz12b2lkIDAscihVKEUpKSkseD1TLm5leHQoKTsheC5kb25lO3g9Uy5uZXh0KCkpe3ZhciB3PXgudmFsdWU7XCJoaXN0b3J5XCIhPT13LnR5cGUmJihsLmhhcyh3KXx8KGwuYWRkKHcpLGYuZ2V0KHcpP2YuZ2V0KHcpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiBsLmFkZCh0KX0pKTp3LmluaXRpYWxTdGF0ZU5vZGVzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiBsLmFkZCh0KX0pKSkpfX1jYXRjaCh0KXtzPXtlcnJvcjp0fX1maW5hbGx5e3RyeXt4JiYheC5kb25lJiYoYz1TLnJldHVybikmJmMuY2FsbChTKX1maW5hbGx5e2lmKHMpdGhyb3cgcy5lcnJvcn19fWVsc2UgZi5nZXQoRSk/Zi5nZXQoRSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIGwuYWRkKHQpfSkpOkUuaW5pdGlhbFN0YXRlTm9kZXMuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIGwuYWRkKHQpfSkpfX1jYXRjaCh0KXtvPXtlcnJvcjp0fX1maW5hbGx5e3RyeXttJiYhbS5kb25lJiYoYT1nLnJldHVybikmJmEuY2FsbChnKX1maW5hbGx5e2lmKG8pdGhyb3cgby5lcnJvcn19dHJ5e2Zvcih2YXIgYj1yKGwpLF89Yi5uZXh0KCk7IV8uZG9uZTtfPWIubmV4dCgpKXt2YXIgRTtmb3Iodj0oRT1fLnZhbHVlKS5wYXJlbnQ7diYmIWwuaGFzKHYpOylsLmFkZCh2KSx2PXYucGFyZW50fX1jYXRjaCh0KXt1PXtlcnJvcjp0fX1maW5hbGx5e3RyeXtfJiYhXy5kb25lJiYoaD1iLnJldHVybikmJmguY2FsbChiKX1maW5hbGx5e2lmKHUpdGhyb3cgdS5lcnJvcn19cmV0dXJuIGx9ZnVuY3Rpb24gcSh0KXt2YXIgZSxuLGk9bmV3IE1hcDt0cnl7Zm9yKHZhciBvPXIodCksYT1vLm5leHQoKTshYS5kb25lO2E9by5uZXh0KCkpe3ZhciBzPWEudmFsdWU7aS5oYXMocyl8fGkuc2V0KHMsW10pLHMucGFyZW50JiYoaS5oYXMocy5wYXJlbnQpfHxpLnNldChzLnBhcmVudCxbXSksaS5nZXQocy5wYXJlbnQpLnB1c2gocykpfX1jYXRjaCh0KXtlPXtlcnJvcjp0fX1maW5hbGx5e3RyeXthJiYhYS5kb25lJiYobj1vLnJldHVybikmJm4uY2FsbChvKX1maW5hbGx5e2lmKGUpdGhyb3cgZS5lcnJvcn19cmV0dXJuIGl9ZnVuY3Rpb24gJCh0LGUpe3JldHVybiBmdW5jdGlvbiB0KGUsbil7dmFyIHI9bi5nZXQoZSk7aWYoIXIpcmV0dXJue307aWYoXCJjb21wb3VuZFwiPT09ZS50eXBlKXt2YXIgaT1yWzBdO2lmKCFpKXJldHVybnt9O2lmKEYoaSkpcmV0dXJuIGkua2V5fXZhciBvPXt9O3JldHVybiByLmZvckVhY2goKGZ1bmN0aW9uKGUpe29bZS5rZXldPXQoZSxuKX0pKSxvfSh0LHEoSihbdF0sZSkpKX1mdW5jdGlvbiBYKHQsZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/dC5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4gdD09PWV9KSk6dCBpbnN0YW5jZW9mIFNldCYmdC5oYXMoZSl9ZnVuY3Rpb24gSCh0LGUpe3JldHVyblwiY29tcG91bmRcIj09PWUudHlwZT9VKGUpLnNvbWUoKGZ1bmN0aW9uKGUpe3JldHVyblwiZmluYWxcIj09PWUudHlwZSYmWCh0LGUpfSkpOlwicGFyYWxsZWxcIj09PWUudHlwZSYmVShlKS5ldmVyeSgoZnVuY3Rpb24oZSl7cmV0dXJuIEgodCxlKX0pKX1mdW5jdGlvbiBHKHQpe3JldHVybiBuZXcgU2V0KGcodC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnRhZ3N9KSkpKX12YXIgSz10LkFjdGlvblR5cGVzLlN0YXJ0LFE9dC5BY3Rpb25UeXBlcy5TdG9wLFc9dC5BY3Rpb25UeXBlcy5SYWlzZSxZPXQuQWN0aW9uVHlwZXMuU2VuZCxaPXQuQWN0aW9uVHlwZXMuQ2FuY2VsLHR0PXQuQWN0aW9uVHlwZXMuTnVsbEV2ZW50LGV0PXQuQWN0aW9uVHlwZXMuQXNzaWduLG50PSh0LkFjdGlvblR5cGVzLkFmdGVyLHQuQWN0aW9uVHlwZXMuRG9uZVN0YXRlLHQuQWN0aW9uVHlwZXMuTG9nKSxydD10LkFjdGlvblR5cGVzLkluaXQsaXQ9dC5BY3Rpb25UeXBlcy5JbnZva2Usb3Q9KHQuQWN0aW9uVHlwZXMuRXJyb3JFeGVjdXRpb24sdC5BY3Rpb25UeXBlcy5FcnJvclBsYXRmb3JtKSxhdD10LkFjdGlvblR5cGVzLkVycm9yQ3VzdG9tLHN0PXQuQWN0aW9uVHlwZXMuVXBkYXRlLGN0PXQuQWN0aW9uVHlwZXMuQ2hvb3NlLHV0PXQuQWN0aW9uVHlwZXMuUHVyZSxodD1MKHt0eXBlOnJ0fSk7ZnVuY3Rpb24gZnQodCxlKXtyZXR1cm4gZSYmZVt0XXx8dm9pZCAwfWZ1bmN0aW9uIGx0KHQsbil7dmFyIHI7aWYoQSh0KXx8XCJudW1iZXJcIj09dHlwZW9mIHQpcj1OKGk9ZnQodCxuKSk/e3R5cGU6dCxleGVjOml9Oml8fHt0eXBlOnQsZXhlYzp2b2lkIDB9O2Vsc2UgaWYoTih0KSlyPXt0eXBlOnQubmFtZXx8dC50b1N0cmluZygpLGV4ZWM6dH07ZWxzZXt2YXIgaTtpZihOKGk9ZnQodC50eXBlLG4pKSlyPWUoZSh7fSx0KSx7ZXhlYzppfSk7ZWxzZSBpZihpKXt2YXIgbz1pLnR5cGV8fHQudHlwZTtyPWUoZShlKHt9LGkpLHQpLHt0eXBlOm99KX1lbHNlIHI9dH1yZXR1cm4gcn12YXIgZHQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD8oVCh0KT90Olt0XSkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gbHQodCxlKX0pKTpbXX07ZnVuY3Rpb24gcHQodCl7dmFyIG49bHQodCk7cmV0dXJuIGUoZSh7aWQ6QSh0KT90Om4uaWR9LG4pLHt0eXBlOm4udHlwZX0pfWZ1bmN0aW9uIHZ0KGUpe3JldHVybiBBKGUpP3t0eXBlOlcsZXZlbnQ6ZX06eXQoZSx7dG86dC5TcGVjaWFsVGFyZ2V0cy5JbnRlcm5hbH0pfWZ1bmN0aW9uIHl0KHQsZSl7cmV0dXJue3RvOmU/ZS50bzp2b2lkIDAsdHlwZTpZLGV2ZW50Ok4odCk/dDpWKHQpLGRlbGF5OmU/ZS5kZWxheTp2b2lkIDAsaWQ6ZSYmdm9pZCAwIT09ZS5pZD9lLmlkOk4odCk/dC5uYW1lOnUodCl9fWZ1bmN0aW9uIGd0KG4scil7cmV0dXJuIHl0KG4sZShlKHt9LHIpLHt0bzp0LlNwZWNpYWxUYXJnZXRzLlBhcmVudH0pKX1mdW5jdGlvbiBtdCgpe3JldHVybiBndChzdCl9dmFyIFN0PWZ1bmN0aW9uKHQsZSl7cmV0dXJue2NvbnRleHQ6dCxldmVudDplfX07dmFyIHh0PWZ1bmN0aW9uKHQpe3JldHVybnt0eXBlOlosc2VuZElkOnR9fTtmdW5jdGlvbiB3dChlKXt2YXIgbj1wdChlKTtyZXR1cm57dHlwZTp0LkFjdGlvblR5cGVzLlN0YXJ0LGFjdGl2aXR5Om4sZXhlYzp2b2lkIDB9fWZ1bmN0aW9uIGJ0KGUpe3ZhciBuPU4oZSk/ZTpwdChlKTtyZXR1cm57dHlwZTp0LkFjdGlvblR5cGVzLlN0b3AsYWN0aXZpdHk6bixleGVjOnZvaWQgMH19dmFyIF90PWZ1bmN0aW9uKHQpe3JldHVybnt0eXBlOmV0LGFzc2lnbm1lbnQ6dH19O2Z1bmN0aW9uIEV0KGUsbil7dmFyIHI9bj9cIiNcIi5jb25jYXQobik6XCJcIjtyZXR1cm5cIlwiLmNvbmNhdCh0LkFjdGlvblR5cGVzLkFmdGVyLFwiKFwiKS5jb25jYXQoZSxcIilcIikuY29uY2F0KHIpfWZ1bmN0aW9uIFR0KGUsbil7dmFyIHI9XCJcIi5jb25jYXQodC5BY3Rpb25UeXBlcy5Eb25lU3RhdGUsXCIuXCIpLmNvbmNhdChlKSxpPXt0eXBlOnIsZGF0YTpuLHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIHJ9fTtyZXR1cm4gaX1mdW5jdGlvbiBOdChlLG4pe3ZhciByPVwiXCIuY29uY2F0KHQuQWN0aW9uVHlwZXMuRG9uZUludm9rZSxcIi5cIikuY29uY2F0KGUpLGk9e3R5cGU6cixkYXRhOm4sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gcn19O3JldHVybiBpfWZ1bmN0aW9uIEF0KGUsbil7dmFyIHI9XCJcIi5jb25jYXQodC5BY3Rpb25UeXBlcy5FcnJvclBsYXRmb3JtLFwiLlwiKS5jb25jYXQoZSksaT17dHlwZTpyLGRhdGE6bix0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiByfX07cmV0dXJuIGl9ZnVuY3Rpb24gT3QodCxuKXtyZXR1cm4geXQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV9KSxlKGUoe30sbikse3RvOnR9KSl9ZnVuY3Rpb24gUHQobixyLGEscyxjLHUpe3ZvaWQgMD09PXUmJih1PSExKTt2YXIgaD1pKHU/W1tdLGNdOmIoYywoZnVuY3Rpb24odCl7cmV0dXJuIHQudHlwZT09PWV0fSkpLDIpLGY9aFswXSxsPWhbMV0sZD1mLmxlbmd0aD9FKGEscyxmLHIpOmEscD11P1thXTp2b2lkIDA7cmV0dXJuW2cobC5tYXAoKGZ1bmN0aW9uKGEpe3ZhciBjO3N3aXRjaChhLnR5cGUpe2Nhc2UgVzpyZXR1cm57dHlwZTpXLF9ldmVudDpMKGEuZXZlbnQpfTtjYXNlIFk6cmV0dXJuIGZ1bmN0aW9uKHQsbixyLGkpe3ZhciBvLGE9e19ldmVudDpyfSxzPUwoTih0LmV2ZW50KT90LmV2ZW50KG4sci5kYXRhLGEpOnQuZXZlbnQpO2lmKEEodC5kZWxheSkpe3ZhciBjPWkmJmlbdC5kZWxheV07bz1OKGMpP2MobixyLmRhdGEsYSk6Y31lbHNlIG89Tih0LmRlbGF5KT90LmRlbGF5KG4sci5kYXRhLGEpOnQuZGVsYXk7dmFyIHU9Tih0LnRvKT90LnRvKG4sci5kYXRhLGEpOnQudG87cmV0dXJuIGUoZSh7fSx0KSx7dG86dSxfZXZlbnQ6cyxldmVudDpzLmRhdGEsZGVsYXk6b30pfShhLGQscyxuLm9wdGlvbnMuZGVsYXlzKTtjYXNlIG50OnJldHVybiBmdW5jdGlvbih0LG4scil7cmV0dXJuIGUoZSh7fSx0KSx7dmFsdWU6QSh0LmV4cHIpP3QuZXhwcjp0LmV4cHIobixyLmRhdGEse19ldmVudDpyfSl9KX0oYSxkLHMpO2Nhc2UgY3Q6aWYoISh2PW51bGw9PT0oYz1hLmNvbmRzLmZpbmQoKGZ1bmN0aW9uKHQpe3ZhciBlPU8odC5jb25kLG4ub3B0aW9ucy5ndWFyZHMpO3JldHVybiFlfHxSKG4sZSxkLHMscil9KSkpfHx2b2lkIDA9PT1jP3ZvaWQgMDpjLmFjdGlvbnMpKXJldHVybltdO3ZhciBoPWkoUHQobixyLGQscyxkdChTKHYpLG4ub3B0aW9ucy5hY3Rpb25zKSx1KSwyKSxmPWhbMF0sbD1oWzFdO3JldHVybiBkPWwsbnVsbD09cHx8cC5wdXNoKGQpLGY7Y2FzZSB1dDp2YXIgdjtpZighKHY9YS5nZXQoZCxzLmRhdGEpKSlyZXR1cm5bXTt2YXIgeT1pKFB0KG4scixkLHMsZHQoUyh2KSxuLm9wdGlvbnMuYWN0aW9ucyksdSksMiksZz15WzBdLG09eVsxXTtyZXR1cm4gZD1tLG51bGw9PXB8fHAucHVzaChkKSxnO2Nhc2UgUTpyZXR1cm4gZnVuY3Rpb24oZSxuLHIpe3ZhciBpPU4oZS5hY3Rpdml0eSk/ZS5hY3Rpdml0eShuLHIuZGF0YSk6ZS5hY3Rpdml0eSxvPVwic3RyaW5nXCI9PXR5cGVvZiBpP3tpZDppfTppO3JldHVybnt0eXBlOnQuQWN0aW9uVHlwZXMuU3RvcCxhY3Rpdml0eTpvfX0oYSxkLHMpO2Nhc2UgZXQ6ZD1FKGQscyxbYV0sciksbnVsbD09cHx8cC5wdXNoKGQpO2JyZWFrO2RlZmF1bHQ6dmFyIHg9bHQoYSxuLm9wdGlvbnMuYWN0aW9ucyksdz14LmV4ZWM7aWYodyYmcCl7dmFyIGI9cC5sZW5ndGgtMTt4PWUoZSh7fSx4KSx7ZXhlYzpmdW5jdGlvbih0KXtmb3IodmFyIGU9W10sbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspZVtuLTFdPWFyZ3VtZW50c1tuXTt3LmFwcGx5KHZvaWQgMCxvKFtwW2JdXSxpKGUpLCExKSl9fSl9cmV0dXJuIHh9fSkpLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuISF0fSkpKSxkXX12YXIga3Q9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3ZhciBlLG4scj10aGlzO3RoaXMuYWN0aW9ucz1bXSx0aGlzLmFjdGl2aXRpZXM9YSx0aGlzLm1ldGE9e30sdGhpcy5ldmVudHM9W10sdGhpcy52YWx1ZT10LnZhbHVlLHRoaXMuY29udGV4dD10LmNvbnRleHQsdGhpcy5fZXZlbnQ9dC5fZXZlbnQsdGhpcy5fc2Vzc2lvbmlkPXQuX3Nlc3Npb25pZCx0aGlzLmV2ZW50PXRoaXMuX2V2ZW50LmRhdGEsdGhpcy5oaXN0b3J5VmFsdWU9dC5oaXN0b3J5VmFsdWUsdGhpcy5oaXN0b3J5PXQuaGlzdG9yeSx0aGlzLmFjdGlvbnM9dC5hY3Rpb25zfHxbXSx0aGlzLmFjdGl2aXRpZXM9dC5hY3Rpdml0aWVzfHxhLHRoaXMubWV0YT0odm9pZCAwPT09KG49dC5jb25maWd1cmF0aW9uKSYmKG49W10pLG4ucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDAhPT1lLm1ldGEmJih0W2UuaWRdPWUubWV0YSksdH0pLHt9KSksdGhpcy5ldmVudHM9dC5ldmVudHN8fFtdLHRoaXMubWF0Y2hlcz10aGlzLm1hdGNoZXMuYmluZCh0aGlzKSx0aGlzLnRvU3RyaW5ncz10aGlzLnRvU3RyaW5ncy5iaW5kKHRoaXMpLHRoaXMuY29uZmlndXJhdGlvbj10LmNvbmZpZ3VyYXRpb24sdGhpcy50cmFuc2l0aW9ucz10LnRyYW5zaXRpb25zLHRoaXMuY2hpbGRyZW49dC5jaGlsZHJlbix0aGlzLmRvbmU9ISF0LmRvbmUsdGhpcy50YWdzPW51bGwhPT0oZT1BcnJheS5pc0FycmF5KHQudGFncyk/bmV3IFNldCh0LnRhZ3MpOnQudGFncykmJnZvaWQgMCE9PWU/ZTpuZXcgU2V0LHRoaXMubWFjaGluZT10Lm1hY2hpbmUsT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJuZXh0RXZlbnRzXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gbyhbXSxpKG5ldyBTZXQoZyhvKFtdLGkodC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm93bkV2ZW50c30pKSksITEpKSkpLCExKX0oci5jb25maWd1cmF0aW9uKX19KX1yZXR1cm4gdC5mcm9tPWZ1bmN0aW9uKGUsbil7cmV0dXJuIGUgaW5zdGFuY2VvZiB0P2UuY29udGV4dCE9PW4/bmV3IHQoe3ZhbHVlOmUudmFsdWUsY29udGV4dDpuLF9ldmVudDplLl9ldmVudCxfc2Vzc2lvbmlkOm51bGwsaGlzdG9yeVZhbHVlOmUuaGlzdG9yeVZhbHVlLGhpc3Rvcnk6ZS5oaXN0b3J5LGFjdGlvbnM6W10sYWN0aXZpdGllczplLmFjdGl2aXRpZXMsbWV0YTp7fSxldmVudHM6W10sY29uZmlndXJhdGlvbjpbXSx0cmFuc2l0aW9uczpbXSxjaGlsZHJlbjp7fX0pOmU6bmV3IHQoe3ZhbHVlOmUsY29udGV4dDpuLF9ldmVudDpodCxfc2Vzc2lvbmlkOm51bGwsaGlzdG9yeVZhbHVlOnZvaWQgMCxoaXN0b3J5OnZvaWQgMCxhY3Rpb25zOltdLGFjdGl2aXRpZXM6dm9pZCAwLG1ldGE6dm9pZCAwLGV2ZW50czpbXSxjb25maWd1cmF0aW9uOltdLHRyYW5zaXRpb25zOltdLGNoaWxkcmVuOnt9fSl9LHQuY3JlYXRlPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgdChlKX0sdC5pbmVydD1mdW5jdGlvbihlLG4pe2lmKGUgaW5zdGFuY2VvZiB0KXtpZighZS5hY3Rpb25zLmxlbmd0aClyZXR1cm4gZTt2YXIgcj1odDtyZXR1cm4gbmV3IHQoe3ZhbHVlOmUudmFsdWUsY29udGV4dDpuLF9ldmVudDpyLF9zZXNzaW9uaWQ6bnVsbCxoaXN0b3J5VmFsdWU6ZS5oaXN0b3J5VmFsdWUsaGlzdG9yeTplLmhpc3RvcnksYWN0aXZpdGllczplLmFjdGl2aXRpZXMsY29uZmlndXJhdGlvbjplLmNvbmZpZ3VyYXRpb24sdHJhbnNpdGlvbnM6W10sY2hpbGRyZW46e319KX1yZXR1cm4gdC5mcm9tKGUsbil9LHQucHJvdG90eXBlLnRvU3RyaW5ncz1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7aWYodm9pZCAwPT09dCYmKHQ9dGhpcy52YWx1ZSksdm9pZCAwPT09ZSYmKGU9XCIuXCIpLEEodCkpcmV0dXJuW3RdO3ZhciByPXModCk7cmV0dXJuIHIuY29uY2F0LmFwcGx5KHIsbyhbXSxpKHIubWFwKChmdW5jdGlvbihyKXtyZXR1cm4gbi50b1N0cmluZ3ModFtyXSxlKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiByK2UrdH0pKX0pKSksITEpKX0sdC5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxyPSh0LmNvbmZpZ3VyYXRpb24sdC50cmFuc2l0aW9ucyx0LnRhZ3MpLGk9KHQubWFjaGluZSxuKHQsW1wiY29uZmlndXJhdGlvblwiLFwidHJhbnNpdGlvbnNcIixcInRhZ3NcIixcIm1hY2hpbmVcIl0pKTtyZXR1cm4gZShlKHt9LGkpLHt0YWdzOkFycmF5LmZyb20ocil9KX0sdC5wcm90b3R5cGUubWF0Y2hlcz1mdW5jdGlvbih0KXtyZXR1cm4gYyh0LHRoaXMudmFsdWUpfSx0LnByb3RvdHlwZS5oYXNUYWc9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMudGFncy5oYXModCl9LHQucHJvdG90eXBlLmNhbj1mdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4gdGhpcy5tYWNoaW5lLCEhKG51bGw9PT0oZT10aGlzLm1hY2hpbmUpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLnRyYW5zaXRpb24odGhpcyx0KS5jaGFuZ2VkKX0sdH0oKSxJdD1bXSxqdD1mdW5jdGlvbih0LGUpe0l0LnB1c2godCk7dmFyIG49ZSh0KTtyZXR1cm4gSXQucG9wKCksbn07ZnVuY3Rpb24gQ3QodCl7cmV0dXJue2lkOnQsc2VuZDpmdW5jdGlvbigpe30sc3Vic2NyaWJlOmZ1bmN0aW9uKCl7cmV0dXJue3Vuc3Vic2NyaWJlOmZ1bmN0aW9uKCl7fX19LGdldFNuYXBzaG90OmZ1bmN0aW9uKCl7fSx0b0pTT046ZnVuY3Rpb24oKXtyZXR1cm57aWQ6dH19fX1mdW5jdGlvbiBWdCh0LGUsbil7dmFyIHI9Q3QoZSk7aWYoci5kZWZlcnJlZD0hMCxrKHQpKXt2YXIgaT1yLnN0YXRlPWp0KHZvaWQgMCwoZnVuY3Rpb24oKXtyZXR1cm4obj90LndpdGhDb250ZXh0KG4pOnQpLmluaXRpYWxTdGF0ZX0pKTtyLmdldFNuYXBzaG90PWZ1bmN0aW9uKCl7cmV0dXJuIGl9fXJldHVybiByfWZ1bmN0aW9uIEx0KHQpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiB0KXt2YXIgZT17dHlwZTp0LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIHR9fTtyZXR1cm4gZX1yZXR1cm4gdH1mdW5jdGlvbiBEdCh0KXtyZXR1cm4gZShlKHt0eXBlOml0fSx0KSx7dG9KU09OOmZ1bmN0aW9uKCl7dC5vbkRvbmUsdC5vbkVycm9yO3ZhciByPW4odCxbXCJvbkRvbmVcIixcIm9uRXJyb3JcIl0pO3JldHVybiBlKGUoe30scikse3R5cGU6aXQsc3JjOkx0KHQuc3JjKX0pfX0pfXZhciBSdD17fSxNdD1mdW5jdGlvbih0KXtyZXR1cm5cIiNcIj09PXRbMF19LHp0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSh0LG4sYyl7dmFyIHUsaD10aGlzO3ZvaWQgMD09PWMmJihjPVwiY29udGV4dFwiaW4gdD90LmNvbnRleHQ6dm9pZCAwKSx0aGlzLmNvbmZpZz10LHRoaXMuX2NvbnRleHQ9Yyx0aGlzLm9yZGVyPS0xLHRoaXMuX194c3RhdGVub2RlPSEwLHRoaXMuX19jYWNoZT17ZXZlbnRzOnZvaWQgMCxyZWxhdGl2ZVZhbHVlOm5ldyBNYXAsaW5pdGlhbFN0YXRlVmFsdWU6dm9pZCAwLGluaXRpYWxTdGF0ZTp2b2lkIDAsb246dm9pZCAwLHRyYW5zaXRpb25zOnZvaWQgMCxjYW5kaWRhdGVzOnt9LGRlbGF5ZWRUcmFuc2l0aW9uczp2b2lkIDB9LHRoaXMuaWRNYXA9e30sdGhpcy50YWdzPVtdLHRoaXMub3B0aW9ucz1PYmplY3QuYXNzaWduKHthY3Rpb25zOnt9LGd1YXJkczp7fSxzZXJ2aWNlczp7fSxhY3Rpdml0aWVzOnt9LGRlbGF5czp7fX0sbiksdGhpcy5wYXJlbnQ9dGhpcy5vcHRpb25zLl9wYXJlbnQsdGhpcy5rZXk9dGhpcy5jb25maWcua2V5fHx0aGlzLm9wdGlvbnMuX2tleXx8dGhpcy5jb25maWcuaWR8fFwiKG1hY2hpbmUpXCIsdGhpcy5tYWNoaW5lPXRoaXMucGFyZW50P3RoaXMucGFyZW50Lm1hY2hpbmU6dGhpcyx0aGlzLnBhdGg9dGhpcy5wYXJlbnQ/dGhpcy5wYXJlbnQucGF0aC5jb25jYXQodGhpcy5rZXkpOltdLHRoaXMuZGVsaW1pdGVyPXRoaXMuY29uZmlnLmRlbGltaXRlcnx8KHRoaXMucGFyZW50P3RoaXMucGFyZW50LmRlbGltaXRlcjpcIi5cIiksdGhpcy5pZD10aGlzLmNvbmZpZy5pZHx8byhbdGhpcy5tYWNoaW5lLmtleV0saSh0aGlzLnBhdGgpLCExKS5qb2luKHRoaXMuZGVsaW1pdGVyKSx0aGlzLnZlcnNpb249dGhpcy5wYXJlbnQ/dGhpcy5wYXJlbnQudmVyc2lvbjp0aGlzLmNvbmZpZy52ZXJzaW9uLHRoaXMudHlwZT10aGlzLmNvbmZpZy50eXBlfHwodGhpcy5jb25maWcucGFyYWxsZWw/XCJwYXJhbGxlbFwiOnRoaXMuY29uZmlnLnN0YXRlcyYmcyh0aGlzLmNvbmZpZy5zdGF0ZXMpLmxlbmd0aD9cImNvbXBvdW5kXCI6dGhpcy5jb25maWcuaGlzdG9yeT9cImhpc3RvcnlcIjpcImF0b21pY1wiKSx0aGlzLnNjaGVtYT10aGlzLnBhcmVudD90aGlzLm1hY2hpbmUuc2NoZW1hOm51bGwhPT0odT10aGlzLmNvbmZpZy5zY2hlbWEpJiZ2b2lkIDAhPT11P3U6e30sdGhpcy5kZXNjcmlwdGlvbj10aGlzLmNvbmZpZy5kZXNjcmlwdGlvbix0aGlzLmluaXRpYWw9dGhpcy5jb25maWcuaW5pdGlhbCx0aGlzLnN0YXRlcz10aGlzLmNvbmZpZy5zdGF0ZXM/ZCh0aGlzLmNvbmZpZy5zdGF0ZXMsKGZ1bmN0aW9uKHQsbil7dmFyIHIsaT1uZXcgYSh0LHtfcGFyZW50OmgsX2tleTpufSk7cmV0dXJuIE9iamVjdC5hc3NpZ24oaC5pZE1hcCxlKCgocj17fSlbaS5pZF09aSxyKSxpLmlkTWFwKSksaX0pKTpSdDt2YXIgZj0wOyFmdW5jdGlvbiB0KGUpe3ZhciBuLGk7ZS5vcmRlcj1mKys7dHJ5e2Zvcih2YXIgbz1yKFUoZSkpLGE9by5uZXh0KCk7IWEuZG9uZTthPW8ubmV4dCgpKXt0KGEudmFsdWUpfX1jYXRjaCh0KXtuPXtlcnJvcjp0fX1maW5hbGx5e3RyeXthJiYhYS5kb25lJiYoaT1vLnJldHVybikmJmkuY2FsbChvKX1maW5hbGx5e2lmKG4pdGhyb3cgbi5lcnJvcn19fSh0aGlzKSx0aGlzLmhpc3Rvcnk9ITA9PT10aGlzLmNvbmZpZy5oaXN0b3J5P1wic2hhbGxvd1wiOnRoaXMuY29uZmlnLmhpc3Rvcnl8fCExLHRoaXMuX3RyYW5zaWVudD0hIXRoaXMuY29uZmlnLmFsd2F5c3x8ISF0aGlzLmNvbmZpZy5vbiYmKEFycmF5LmlzQXJyYXkodGhpcy5jb25maWcub24pP3RoaXMuY29uZmlnLm9uLnNvbWUoKGZ1bmN0aW9uKHQpe3JldHVyblwiXCI9PT10LmV2ZW50fSkpOlwiXCJpbiB0aGlzLmNvbmZpZy5vbiksdGhpcy5zdHJpY3Q9ISF0aGlzLmNvbmZpZy5zdHJpY3QsdGhpcy5vbkVudHJ5PVModGhpcy5jb25maWcuZW50cnl8fHRoaXMuY29uZmlnLm9uRW50cnkpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGx0KHQpfSkpLHRoaXMub25FeGl0PVModGhpcy5jb25maWcuZXhpdHx8dGhpcy5jb25maWcub25FeGl0KS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBsdCh0KX0pKSx0aGlzLm1ldGE9dGhpcy5jb25maWcubWV0YSx0aGlzLmRvbmVEYXRhPVwiZmluYWxcIj09PXRoaXMudHlwZT90aGlzLmNvbmZpZy5kYXRhOnZvaWQgMCx0aGlzLmludm9rZT1TKHRoaXMuY29uZmlnLmludm9rZSkubWFwKChmdW5jdGlvbih0LG4pe3ZhciByLGk7aWYoayh0KSlyZXR1cm4gaC5tYWNoaW5lLm9wdGlvbnMuc2VydmljZXM9ZSgoKHI9e30pW3QuaWRdPXQsciksaC5tYWNoaW5lLm9wdGlvbnMuc2VydmljZXMpLER0KHtzcmM6dC5pZCxpZDp0LmlkfSk7aWYoQSh0LnNyYykpcmV0dXJuIER0KGUoZSh7fSx0KSx7aWQ6dC5pZHx8dC5zcmMsc3JjOnQuc3JjfSkpO2lmKGsodC5zcmMpfHxOKHQuc3JjKSl7dmFyIG89XCJcIi5jb25jYXQoaC5pZCxcIjppbnZvY2F0aW9uW1wiKS5jb25jYXQobixcIl1cIik7cmV0dXJuIGgubWFjaGluZS5vcHRpb25zLnNlcnZpY2VzPWUoKChpPXt9KVtvXT10LnNyYyxpKSxoLm1hY2hpbmUub3B0aW9ucy5zZXJ2aWNlcyksRHQoZShlKHtpZDpvfSx0KSx7c3JjOm99KSl9dmFyIGE9dC5zcmM7cmV0dXJuIER0KGUoZSh7aWQ6YS50eXBlfSx0KSx7c3JjOmF9KSl9KSksdGhpcy5hY3Rpdml0aWVzPVModGhpcy5jb25maWcuYWN0aXZpdGllcykuY29uY2F0KHRoaXMuaW52b2tlKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBwdCh0KX0pKSx0aGlzLnRyYW5zaXRpb249dGhpcy50cmFuc2l0aW9uLmJpbmQodGhpcyksdGhpcy50YWdzPVModGhpcy5jb25maWcudGFncyl9cmV0dXJuIGEucHJvdG90eXBlLl9pbml0PWZ1bmN0aW9uKCl7dGhpcy5fX2NhY2hlLnRyYW5zaXRpb25zfHxCKHRoaXMpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm9ufSkpfSxhLnByb3RvdHlwZS53aXRoQ29uZmlnPWZ1bmN0aW9uKHQsbil7dmFyIHI9dGhpcy5vcHRpb25zLGk9ci5hY3Rpb25zLG89ci5hY3Rpdml0aWVzLHM9ci5ndWFyZHMsYz1yLnNlcnZpY2VzLHU9ci5kZWxheXM7cmV0dXJuIG5ldyBhKHRoaXMuY29uZmlnLHthY3Rpb25zOmUoZSh7fSxpKSx0LmFjdGlvbnMpLGFjdGl2aXRpZXM6ZShlKHt9LG8pLHQuYWN0aXZpdGllcyksZ3VhcmRzOmUoZSh7fSxzKSx0Lmd1YXJkcyksc2VydmljZXM6ZShlKHt9LGMpLHQuc2VydmljZXMpLGRlbGF5czplKGUoe30sdSksdC5kZWxheXMpfSxudWxsIT1uP246dGhpcy5jb250ZXh0KX0sYS5wcm90b3R5cGUud2l0aENvbnRleHQ9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBhKHRoaXMuY29uZmlnLHRoaXMub3B0aW9ucyx0KX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGEucHJvdG90eXBlLFwiY29udGV4dFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTih0aGlzLl9jb250ZXh0KT90aGlzLl9jb250ZXh0KCk6dGhpcy5fY29udGV4dH0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYS5wcm90b3R5cGUsXCJkZWZpbml0aW9uXCIse2dldDpmdW5jdGlvbigpe3JldHVybntpZDp0aGlzLmlkLGtleTp0aGlzLmtleSx2ZXJzaW9uOnRoaXMudmVyc2lvbixjb250ZXh0OnRoaXMuY29udGV4dCx0eXBlOnRoaXMudHlwZSxpbml0aWFsOnRoaXMuaW5pdGlhbCxoaXN0b3J5OnRoaXMuaGlzdG9yeSxzdGF0ZXM6ZCh0aGlzLnN0YXRlcywoZnVuY3Rpb24odCl7cmV0dXJuIHQuZGVmaW5pdGlvbn0pKSxvbjp0aGlzLm9uLHRyYW5zaXRpb25zOnRoaXMudHJhbnNpdGlvbnMsZW50cnk6dGhpcy5vbkVudHJ5LGV4aXQ6dGhpcy5vbkV4aXQsYWN0aXZpdGllczp0aGlzLmFjdGl2aXRpZXN8fFtdLG1ldGE6dGhpcy5tZXRhLG9yZGVyOnRoaXMub3JkZXJ8fC0xLGRhdGE6dGhpcy5kb25lRGF0YSxpbnZva2U6dGhpcy5pbnZva2UsZGVzY3JpcHRpb246dGhpcy5kZXNjcmlwdGlvbix0YWdzOnRoaXMudGFnc319LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksYS5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGVmaW5pdGlvbn0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGEucHJvdG90eXBlLFwib25cIix7Z2V0OmZ1bmN0aW9uKCl7aWYodGhpcy5fX2NhY2hlLm9uKXJldHVybiB0aGlzLl9fY2FjaGUub247dmFyIHQ9dGhpcy50cmFuc2l0aW9ucztyZXR1cm4gdGhpcy5fX2NhY2hlLm9uPXQucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiB0W2UuZXZlbnRUeXBlXT10W2UuZXZlbnRUeXBlXXx8W10sdFtlLmV2ZW50VHlwZV0ucHVzaChlKSx0fSkse30pfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLnByb3RvdHlwZSxcImFmdGVyXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9fY2FjaGUuZGVsYXllZFRyYW5zaXRpb25zfHwodGhpcy5fX2NhY2hlLmRlbGF5ZWRUcmFuc2l0aW9ucz10aGlzLmdldERlbGF5ZWRUcmFuc2l0aW9ucygpLHRoaXMuX19jYWNoZS5kZWxheWVkVHJhbnNpdGlvbnMpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLnByb3RvdHlwZSxcInRyYW5zaXRpb25zXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9fY2FjaGUudHJhbnNpdGlvbnN8fCh0aGlzLl9fY2FjaGUudHJhbnNpdGlvbnM9dGhpcy5mb3JtYXRUcmFuc2l0aW9ucygpLHRoaXMuX19jYWNoZS50cmFuc2l0aW9ucyl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksYS5wcm90b3R5cGUuZ2V0Q2FuZGlkYXRlcz1mdW5jdGlvbih0KXtpZih0aGlzLl9fY2FjaGUuY2FuZGlkYXRlc1t0XSlyZXR1cm4gdGhpcy5fX2NhY2hlLmNhbmRpZGF0ZXNbdF07dmFyIGU9XCJcIj09PXQsbj10aGlzLnRyYW5zaXRpb25zLmZpbHRlcigoZnVuY3Rpb24obil7dmFyIHI9bi5ldmVudFR5cGU9PT10O3JldHVybiBlP3I6cnx8XCIqXCI9PT1uLmV2ZW50VHlwZX0pKTtyZXR1cm4gdGhpcy5fX2NhY2hlLmNhbmRpZGF0ZXNbdF09bixufSxhLnByb3RvdHlwZS5nZXREZWxheWVkVHJhbnNpdGlvbnM9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLG49dGhpcy5jb25maWcuYWZ0ZXI7aWYoIW4pcmV0dXJuW107dmFyIHI9ZnVuY3Rpb24oZSxuKXt2YXIgcj1FdChOKGUpP1wiXCIuY29uY2F0KHQuaWQsXCI6ZGVsYXlbXCIpLmNvbmNhdChuLFwiXVwiKTplLHQuaWQpO3JldHVybiB0Lm9uRW50cnkucHVzaCh5dChyLHtkZWxheTplfSkpLHQub25FeGl0LnB1c2goeHQocikpLHJ9O3JldHVybihUKG4pP24ubWFwKChmdW5jdGlvbih0LG4pe3ZhciBpPXIodC5kZWxheSxuKTtyZXR1cm4gZShlKHt9LHQpLHtldmVudDppfSl9KSk6ZyhzKG4pLm1hcCgoZnVuY3Rpb24odCxpKXt2YXIgbz1uW3RdLGE9QShvKT97dGFyZ2V0Om99Om8scz1pc05hTigrdCk/dDordCxjPXIocyxpKTtyZXR1cm4gUyhhKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBlKGUoe30sdCkse2V2ZW50OmMsZGVsYXk6c30pfSkpfSkpKSkubWFwKChmdW5jdGlvbihuKXt2YXIgcj1uLmRlbGF5O3JldHVybiBlKGUoe30sdC5mb3JtYXRUcmFuc2l0aW9uKG4pKSx7ZGVsYXk6cn0pfSkpfSxhLnByb3RvdHlwZS5nZXRTdGF0ZU5vZGVzPWZ1bmN0aW9uKHQpe3ZhciBlLG49dGhpcztpZighdClyZXR1cm5bXTt2YXIgcj10IGluc3RhbmNlb2Yga3Q/dC52YWx1ZTpmKHQsdGhpcy5kZWxpbWl0ZXIpO2lmKEEocikpe3ZhciBpPXRoaXMuZ2V0U3RhdGVOb2RlKHIpLmluaXRpYWw7cmV0dXJuIHZvaWQgMCE9PWk/dGhpcy5nZXRTdGF0ZU5vZGVzKCgoZT17fSlbcl09aSxlKSk6W3RoaXMsdGhpcy5zdGF0ZXNbcl1dfXZhciBvPXMociksYT1vLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIG4uZ2V0U3RhdGVOb2RlKHQpfSkpO3JldHVybiBhLnB1c2godGhpcyksYS5jb25jYXQoby5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7dmFyIGk9bi5nZXRTdGF0ZU5vZGUoZSkuZ2V0U3RhdGVOb2RlcyhyW2VdKTtyZXR1cm4gdC5jb25jYXQoaSl9KSxbXSkpfSxhLnByb3RvdHlwZS5oYW5kbGVzPWZ1bmN0aW9uKHQpe3ZhciBlPXUodCk7cmV0dXJuIHRoaXMuZXZlbnRzLmluY2x1ZGVzKGUpfSxhLnByb3RvdHlwZS5yZXNvbHZlU3RhdGU9ZnVuY3Rpb24odCl7dmFyIG49QXJyYXkuZnJvbShKKFtdLHRoaXMuZ2V0U3RhdGVOb2Rlcyh0LnZhbHVlKSkpO3JldHVybiBuZXcga3QoZShlKHt9LHQpLHt2YWx1ZTp0aGlzLnJlc29sdmUodC52YWx1ZSksY29uZmlndXJhdGlvbjpuLGRvbmU6SChuLHRoaXMpLHRhZ3M6RyhuKX0pKX0sYS5wcm90b3R5cGUudHJhbnNpdGlvbkxlYWZOb2RlPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10aGlzLmdldFN0YXRlTm9kZSh0KS5uZXh0KGUsbik7cmV0dXJuIHImJnIudHJhbnNpdGlvbnMubGVuZ3RoP3I6dGhpcy5uZXh0KGUsbil9LGEucHJvdG90eXBlLnRyYW5zaXRpb25Db21wb3VuZE5vZGU9ZnVuY3Rpb24odCxlLG4pe3ZhciByPXModCksaT10aGlzLmdldFN0YXRlTm9kZShyWzBdKS5fdHJhbnNpdGlvbih0W3JbMF1dLGUsbik7cmV0dXJuIGkmJmkudHJhbnNpdGlvbnMubGVuZ3RoP2k6dGhpcy5uZXh0KGUsbil9LGEucHJvdG90eXBlLnRyYW5zaXRpb25QYXJhbGxlbE5vZGU9ZnVuY3Rpb24odCxlLG4pe3ZhciBpLG8sYT17fTt0cnl7Zm9yKHZhciBjPXIocyh0KSksdT1jLm5leHQoKTshdS5kb25lO3U9Yy5uZXh0KCkpe3ZhciBoPXUudmFsdWUsZj10W2hdO2lmKGYpe3ZhciBsPXRoaXMuZ2V0U3RhdGVOb2RlKGgpLl90cmFuc2l0aW9uKGYsZSxuKTtsJiYoYVtoXT1sKX19fWNhdGNoKHQpe2k9e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e3UmJiF1LmRvbmUmJihvPWMucmV0dXJuKSYmby5jYWxsKGMpfWZpbmFsbHl7aWYoaSl0aHJvdyBpLmVycm9yfX12YXIgZD1zKGEpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGFbdF19KSkscD1nKGQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC50cmFuc2l0aW9uc30pKSk7aWYoIWQuc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuIHQudHJhbnNpdGlvbnMubGVuZ3RoPjB9KSkpcmV0dXJuIHRoaXMubmV4dChlLG4pO3ZhciB2PWcoZC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmVudHJ5U2V0fSkpKSx5PWcocyhhKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBhW3RdLmNvbmZpZ3VyYXRpb259KSkpO3JldHVybnt0cmFuc2l0aW9uczpwLGVudHJ5U2V0OnYsZXhpdFNldDpnKGQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5leGl0U2V0fSkpKSxjb25maWd1cmF0aW9uOnksc291cmNlOmUsYWN0aW9uczpnKHMoYSkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gYVt0XS5hY3Rpb25zfSkpKX19LGEucHJvdG90eXBlLl90cmFuc2l0aW9uPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gQSh0KT90aGlzLnRyYW5zaXRpb25MZWFmTm9kZSh0LGUsbik6MT09PXModCkubGVuZ3RoP3RoaXMudHJhbnNpdGlvbkNvbXBvdW5kTm9kZSh0LGUsbik6dGhpcy50cmFuc2l0aW9uUGFyYWxsZWxOb2RlKHQsZSxuKX0sYS5wcm90b3R5cGUubmV4dD1mdW5jdGlvbih0LGUpe3ZhciBuLGEscyx1PXRoaXMsaD1lLm5hbWUsbD1bXSxkPVtdO3RyeXtmb3IodmFyIHA9cih0aGlzLmdldENhbmRpZGF0ZXMoaCkpLHk9cC5uZXh0KCk7IXkuZG9uZTt5PXAubmV4dCgpKXt2YXIgbT15LnZhbHVlLFM9bS5jb25kLHg9bS5pbix3PXQuY29udGV4dCxiPSF4fHwoQSh4KSYmTXQoeCk/dC5tYXRjaGVzKGYodGhpcy5nZXRTdGF0ZU5vZGVCeUlkKHgpLnBhdGgsdGhpcy5kZWxpbWl0ZXIpKTpjKGYoeCx0aGlzLmRlbGltaXRlciksdih0aGlzLnBhdGguc2xpY2UoMCwtMikpKHQudmFsdWUpKSksXz0hMTt0cnl7Xz0hU3x8Uih0aGlzLm1hY2hpbmUsUyx3LGUsdCl9Y2F0Y2godCl7dGhyb3cgbmV3IEVycm9yKFwiVW5hYmxlIHRvIGV2YWx1YXRlIGd1YXJkICdcIi5jb25jYXQoUy5uYW1lfHxTLnR5cGUsXCInIGluIHRyYW5zaXRpb24gZm9yIGV2ZW50ICdcIikuY29uY2F0KGgsXCInIGluIHN0YXRlIG5vZGUgJ1wiKS5jb25jYXQodGhpcy5pZCxcIic6XFxuXCIpLmNvbmNhdCh0Lm1lc3NhZ2UpKX1pZihfJiZiKXt2b2lkIDAhPT1tLnRhcmdldCYmKGQ9bS50YXJnZXQpLGwucHVzaC5hcHBseShsLG8oW10saShtLmFjdGlvbnMpLCExKSkscz1tO2JyZWFrfX19Y2F0Y2godCl7bj17ZXJyb3I6dH19ZmluYWxseXt0cnl7eSYmIXkuZG9uZSYmKGE9cC5yZXR1cm4pJiZhLmNhbGwocCl9ZmluYWxseXtpZihuKXRocm93IG4uZXJyb3J9fWlmKHMpe2lmKCFkLmxlbmd0aClyZXR1cm57dHJhbnNpdGlvbnM6W3NdLGVudHJ5U2V0OltdLGV4aXRTZXQ6W10sY29uZmlndXJhdGlvbjp0LnZhbHVlP1t0aGlzXTpbXSxzb3VyY2U6dCxhY3Rpb25zOmx9O3ZhciBFPWcoZC5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiB1LmdldFJlbGF0aXZlU3RhdGVOb2RlcyhlLHQuaGlzdG9yeVZhbHVlKX0pKSksVD0hIXMuaW50ZXJuYWw7cmV0dXJue3RyYW5zaXRpb25zOltzXSxlbnRyeVNldDpUP1tdOmcoRS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB1Lm5vZGVzRnJvbUNoaWxkKHQpfSkpKSxleGl0U2V0OlQ/W106W3RoaXNdLGNvbmZpZ3VyYXRpb246RSxzb3VyY2U6dCxhY3Rpb25zOmx9fX0sYS5wcm90b3R5cGUubm9kZXNGcm9tQ2hpbGQ9ZnVuY3Rpb24odCl7aWYodC5lc2NhcGVzKHRoaXMpKXJldHVybltdO2Zvcih2YXIgZT1bXSxuPXQ7biYmbiE9PXRoaXM7KWUucHVzaChuKSxuPW4ucGFyZW50O3JldHVybiBlLnB1c2godGhpcyksZX0sYS5wcm90b3R5cGUuZXNjYXBlcz1mdW5jdGlvbih0KXtpZih0aGlzPT09dClyZXR1cm4hMTtmb3IodmFyIGU9dGhpcy5wYXJlbnQ7ZTspe2lmKGU9PT10KXJldHVybiExO2U9ZS5wYXJlbnR9cmV0dXJuITB9LGEucHJvdG90eXBlLmdldEFjdGlvbnM9ZnVuY3Rpb24odCxlLG4sYSl7dmFyIHMsYyx1LGgsZj1KKFtdLGE/dGhpcy5nZXRTdGF0ZU5vZGVzKGEudmFsdWUpOlt0aGlzXSksbD10LmNvbmZpZ3VyYXRpb24ubGVuZ3RoP0ooZix0LmNvbmZpZ3VyYXRpb24pOmY7dHJ5e2Zvcih2YXIgZD1yKGwpLHA9ZC5uZXh0KCk7IXAuZG9uZTtwPWQubmV4dCgpKXtYKGYsbT1wLnZhbHVlKXx8dC5lbnRyeVNldC5wdXNoKG0pfX1jYXRjaCh0KXtzPXtlcnJvcjp0fX1maW5hbGx5e3RyeXtwJiYhcC5kb25lJiYoYz1kLnJldHVybikmJmMuY2FsbChkKX1maW5hbGx5e2lmKHMpdGhyb3cgcy5lcnJvcn19dHJ5e2Zvcih2YXIgdj1yKGYpLHk9di5uZXh0KCk7IXkuZG9uZTt5PXYubmV4dCgpKXt2YXIgbTtYKGwsbT15LnZhbHVlKSYmIVgodC5leGl0U2V0LG0ucGFyZW50KXx8dC5leGl0U2V0LnB1c2gobSl9fWNhdGNoKHQpe3U9e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e3kmJiF5LmRvbmUmJihoPXYucmV0dXJuKSYmaC5jYWxsKHYpfWZpbmFsbHl7aWYodSl0aHJvdyB1LmVycm9yfX10LnNvdXJjZXx8KHQuZXhpdFNldD1bXSx0LmVudHJ5U2V0LnB1c2godGhpcykpO3ZhciBTPWcodC5lbnRyeVNldC5tYXAoKGZ1bmN0aW9uKHIpe3ZhciBpPVtdO2lmKFwiZmluYWxcIiE9PXIudHlwZSlyZXR1cm4gaTt2YXIgbz1yLnBhcmVudDtpZighby5wYXJlbnQpcmV0dXJuIGk7aS5wdXNoKFR0KHIuaWQsci5kb25lRGF0YSksVHQoby5pZCxyLmRvbmVEYXRhP3goci5kb25lRGF0YSxlLG4pOnZvaWQgMCkpO3ZhciBhPW8ucGFyZW50O3JldHVyblwicGFyYWxsZWxcIj09PWEudHlwZSYmVShhKS5ldmVyeSgoZnVuY3Rpb24oZSl7cmV0dXJuIEgodC5jb25maWd1cmF0aW9uLGUpfSkpJiZpLnB1c2goVHQoYS5pZCkpLGl9KSkpO3QuZXhpdFNldC5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiBlLm9yZGVyLXQub3JkZXJ9KSksdC5lbnRyeVNldC5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiB0Lm9yZGVyLWUub3JkZXJ9KSk7dmFyIHc9bmV3IFNldCh0LmVudHJ5U2V0KSxiPW5ldyBTZXQodC5leGl0U2V0KSxfPWkoW2coQXJyYXkuZnJvbSh3KS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBvKG8oW10saSh0LmFjdGl2aXRpZXMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gd3QodCl9KSkpLCExKSxpKHQub25FbnRyeSksITEpfSkpKS5jb25jYXQoUy5tYXAodnQpKSxnKEFycmF5LmZyb20oYikubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gbyhvKFtdLGkodC5vbkV4aXQpLCExKSxpKHQuYWN0aXZpdGllcy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBidCh0KX0pKSksITEpfSkpKV0sMiksRT1fWzBdLFQ9X1sxXTtyZXR1cm4gZHQoVC5jb25jYXQodC5hY3Rpb25zKS5jb25jYXQoRSksdGhpcy5tYWNoaW5lLm9wdGlvbnMuYWN0aW9ucyl9LGEucHJvdG90eXBlLnRyYW5zaXRpb249ZnVuY3Rpb24odCxlLG4pe3ZvaWQgMD09PXQmJih0PXRoaXMuaW5pdGlhbFN0YXRlKTt2YXIgcixhLHM9TChlKTtpZih0IGluc3RhbmNlb2Yga3Qpcj12b2lkIDA9PT1uP3Q6dGhpcy5yZXNvbHZlU3RhdGUoa3QuZnJvbSh0LG4pKTtlbHNle3ZhciBjPUEodCk/dGhpcy5yZXNvbHZlKGwodGhpcy5nZXRSZXNvbHZlZFBhdGgodCkpKTp0aGlzLnJlc29sdmUodCksdT1udWxsIT1uP246dGhpcy5tYWNoaW5lLmNvbnRleHQ7cj10aGlzLnJlc29sdmVTdGF0ZShrdC5mcm9tKGMsdSkpfWlmKHRoaXMuc3RyaWN0JiYhdGhpcy5ldmVudHMuaW5jbHVkZXMocy5uYW1lKSYmKGE9cy5uYW1lLCEvXihkb25lfGVycm9yKVxcLi8udGVzdChhKSkpdGhyb3cgbmV3IEVycm9yKFwiTWFjaGluZSAnXCIuY29uY2F0KHRoaXMuaWQsXCInIGRvZXMgbm90IGFjY2VwdCBldmVudCAnXCIpLmNvbmNhdChzLm5hbWUsXCInXCIpKTt2YXIgaD10aGlzLl90cmFuc2l0aW9uKHIudmFsdWUscixzKXx8e3RyYW5zaXRpb25zOltdLGNvbmZpZ3VyYXRpb246W10sZW50cnlTZXQ6W10sZXhpdFNldDpbXSxzb3VyY2U6cixhY3Rpb25zOltdfSxmPUooW10sdGhpcy5nZXRTdGF0ZU5vZGVzKHIudmFsdWUpKSxkPWguY29uZmlndXJhdGlvbi5sZW5ndGg/SihmLGguY29uZmlndXJhdGlvbik6ZjtyZXR1cm4gaC5jb25maWd1cmF0aW9uPW8oW10saShkKSwhMSksdGhpcy5yZXNvbHZlVHJhbnNpdGlvbihoLHIscyl9LGEucHJvdG90eXBlLnJlc29sdmVSYWlzZWRUcmFuc2l0aW9uPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcixhPXQuYWN0aW9ucztyZXR1cm4odD10aGlzLnRyYW5zaXRpb24odCxlKSkuX2V2ZW50PW4sdC5ldmVudD1uLmRhdGEsKHI9dC5hY3Rpb25zKS51bnNoaWZ0LmFwcGx5KHIsbyhbXSxpKGEpLCExKSksdH0sYS5wcm90b3R5cGUucmVzb2x2ZVRyYW5zaXRpb249ZnVuY3Rpb24obixvLGEsYyl7dmFyIHUsaCxmPXRoaXM7dm9pZCAwPT09YSYmKGE9aHQpLHZvaWQgMD09PWMmJihjPXRoaXMubWFjaGluZS5jb250ZXh0KTt2YXIgbD1uLmNvbmZpZ3VyYXRpb24sZD0hb3x8bi50cmFuc2l0aW9ucy5sZW5ndGg+MCxwPWQ/JCh0aGlzLm1hY2hpbmUsbCk6dm9pZCAwLHY9bz9vLmhpc3RvcnlWYWx1ZT9vLmhpc3RvcnlWYWx1ZTpuLnNvdXJjZT90aGlzLm1hY2hpbmUuaGlzdG9yeVZhbHVlKG8udmFsdWUpOnZvaWQgMDp2b2lkIDAseT1vP28uY29udGV4dDpjLGc9dGhpcy5nZXRBY3Rpb25zKG4seSxhLG8pLG09bz9lKHt9LG8uYWN0aXZpdGllcyk6e307dHJ5e2Zvcih2YXIgUz1yKGcpLHc9Uy5uZXh0KCk7IXcuZG9uZTt3PVMubmV4dCgpKXt2YXIgRT13LnZhbHVlO0UudHlwZT09PUs/bVtFLmFjdGl2aXR5LmlkfHxFLmFjdGl2aXR5LnR5cGVdPUU6RS50eXBlPT09USYmKG1bRS5hY3Rpdml0eS5pZHx8RS5hY3Rpdml0eS50eXBlXT0hMSl9fWNhdGNoKHQpe3U9e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e3cmJiF3LmRvbmUmJihoPVMucmV0dXJuKSYmaC5jYWxsKFMpfWZpbmFsbHl7aWYodSl0aHJvdyB1LmVycm9yfX12YXIgVCxOLE89aShQdCh0aGlzLG8seSxhLGcsdGhpcy5tYWNoaW5lLmNvbmZpZy5wcmVzZXJ2ZUFjdGlvbk9yZGVyKSwyKSxQPU9bMF0saz1PWzFdLEk9aShiKFAsKGZ1bmN0aW9uKGUpe3JldHVybiBlLnR5cGU9PT1XfHxlLnR5cGU9PT1ZJiZlLnRvPT09dC5TcGVjaWFsVGFyZ2V0cy5JbnRlcm5hbH0pKSwyKSxqPUlbMF0sQz1JWzFdLFY9UC5maWx0ZXIoKGZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiB0LnR5cGU9PT1LJiYobnVsbD09PShlPXQuYWN0aXZpdHkpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLnR5cGUpPT09aXR9KSkucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiB0W2UuYWN0aXZpdHkuaWRdPWZ1bmN0aW9uKHQsZSxuLHIpe3ZhciBpLG89TSh0LnNyYyksYT1udWxsPT09KGk9bnVsbD09ZT92b2lkIDA6ZS5vcHRpb25zLnNlcnZpY2VzKXx8dm9pZCAwPT09aT92b2lkIDA6aVtvLnR5cGVdLHM9dC5kYXRhP3godC5kYXRhLG4scik6dm9pZCAwLGM9YT9WdChhLHQuaWQscyk6Q3QodC5pZCk7cmV0dXJuIGMubWV0YT10LGN9KGUuYWN0aXZpdHksZi5tYWNoaW5lLGssYSksdH0pLG8/ZSh7fSxvLmNoaWxkcmVuKTp7fSksTD1wP24uY29uZmlndXJhdGlvbjpvP28uY29uZmlndXJhdGlvbjpbXSxEPUgoTCx0aGlzKSxSPW5ldyBrdCh7dmFsdWU6cHx8by52YWx1ZSxjb250ZXh0OmssX2V2ZW50OmEsX3Nlc3Npb25pZDpvP28uX3Nlc3Npb25pZDpudWxsLGhpc3RvcnlWYWx1ZTpwP3Y/KFQ9dixOPXAse2N1cnJlbnQ6TixzdGF0ZXM6XyhULE4pfSk6dm9pZCAwOm8/by5oaXN0b3J5VmFsdWU6dm9pZCAwLGhpc3Rvcnk6IXB8fG4uc291cmNlP286dm9pZCAwLGFjdGlvbnM6cD9DOltdLGFjdGl2aXRpZXM6cD9tOm8/by5hY3Rpdml0aWVzOnt9LGV2ZW50czpbXSxjb25maWd1cmF0aW9uOkwsdHJhbnNpdGlvbnM6bi50cmFuc2l0aW9ucyxjaGlsZHJlbjpWLGRvbmU6RCx0YWdzOm51bGw9PW8/dm9pZCAwOm8udGFncyxtYWNoaW5lOnRoaXN9KSx6PXkhPT1rO1IuY2hhbmdlZD1hLm5hbWU9PT1zdHx8ejt2YXIgRj1SLmhpc3Rvcnk7RiYmZGVsZXRlIEYuaGlzdG9yeTt2YXIgVT0hRCYmKHRoaXMuX3RyYW5zaWVudHx8bC5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4gdC5fdHJhbnNpZW50fSkpKTtpZighKGR8fFUmJlwiXCIhPT1hLm5hbWUpKXJldHVybiBSO3ZhciBCPVI7aWYoIUQpZm9yKFUmJihCPXRoaXMucmVzb2x2ZVJhaXNlZFRyYW5zaXRpb24oQix7dHlwZTp0dH0sYSkpO2oubGVuZ3RoOyl7dmFyIEo9ai5zaGlmdCgpO0I9dGhpcy5yZXNvbHZlUmFpc2VkVHJhbnNpdGlvbihCLEouX2V2ZW50LGEpfXZhciBxPUIuY2hhbmdlZHx8KEY/ISFCLmFjdGlvbnMubGVuZ3RofHx6fHx0eXBlb2YgRi52YWx1ZSE9dHlwZW9mIEIudmFsdWV8fCFmdW5jdGlvbiB0KGUsbil7aWYoZT09PW4pcmV0dXJuITA7aWYodm9pZCAwPT09ZXx8dm9pZCAwPT09bilyZXR1cm4hMTtpZihBKGUpfHxBKG4pKXJldHVybiBlPT09bjt2YXIgcj1zKGUpLGk9cyhuKTtyZXR1cm4gci5sZW5ndGg9PT1pLmxlbmd0aCYmci5ldmVyeSgoZnVuY3Rpb24ocil7cmV0dXJuIHQoZVtyXSxuW3JdKX0pKX0oQi52YWx1ZSxGLnZhbHVlKTp2b2lkIDApO3JldHVybiBCLmNoYW5nZWQ9cSxCLmhpc3Rvcnk9RixCLnRhZ3M9RyhCLmNvbmZpZ3VyYXRpb24pLEJ9LGEucHJvdG90eXBlLmdldFN0YXRlTm9kZT1mdW5jdGlvbih0KXtpZihNdCh0KSlyZXR1cm4gdGhpcy5tYWNoaW5lLmdldFN0YXRlTm9kZUJ5SWQodCk7aWYoIXRoaXMuc3RhdGVzKXRocm93IG5ldyBFcnJvcihcIlVuYWJsZSB0byByZXRyaWV2ZSBjaGlsZCBzdGF0ZSAnXCIuY29uY2F0KHQsXCInIGZyb20gJ1wiKS5jb25jYXQodGhpcy5pZCxcIic7IG5vIGNoaWxkIHN0YXRlcyBleGlzdC5cIikpO3ZhciBlPXRoaXMuc3RhdGVzW3RdO2lmKCFlKXRocm93IG5ldyBFcnJvcihcIkNoaWxkIHN0YXRlICdcIi5jb25jYXQodCxcIicgZG9lcyBub3QgZXhpc3Qgb24gJ1wiKS5jb25jYXQodGhpcy5pZCxcIidcIikpO3JldHVybiBlfSxhLnByb3RvdHlwZS5nZXRTdGF0ZU5vZGVCeUlkPWZ1bmN0aW9uKHQpe3ZhciBlPU10KHQpP3Quc2xpY2UoXCIjXCIubGVuZ3RoKTp0O2lmKGU9PT10aGlzLmlkKXJldHVybiB0aGlzO3ZhciBuPXRoaXMubWFjaGluZS5pZE1hcFtlXTtpZighbil0aHJvdyBuZXcgRXJyb3IoXCJDaGlsZCBzdGF0ZSBub2RlICcjXCIuY29uY2F0KGUsXCInIGRvZXMgbm90IGV4aXN0IG9uIG1hY2hpbmUgJ1wiKS5jb25jYXQodGhpcy5pZCxcIidcIikpO3JldHVybiBufSxhLnByb3RvdHlwZS5nZXRTdGF0ZU5vZGVCeVBhdGg9ZnVuY3Rpb24odCl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIHQmJk10KHQpKXRyeXtyZXR1cm4gdGhpcy5nZXRTdGF0ZU5vZGVCeUlkKHQuc2xpY2UoMSkpfWNhdGNoKHQpe31mb3IodmFyIGU9aCh0LHRoaXMuZGVsaW1pdGVyKS5zbGljZSgpLG49dGhpcztlLmxlbmd0aDspe3ZhciByPWUuc2hpZnQoKTtpZighci5sZW5ndGgpYnJlYWs7bj1uLmdldFN0YXRlTm9kZShyKX1yZXR1cm4gbn0sYS5wcm90b3R5cGUucmVzb2x2ZT1mdW5jdGlvbih0KXt2YXIgZSxuPXRoaXM7aWYoIXQpcmV0dXJuIHRoaXMuaW5pdGlhbFN0YXRlVmFsdWV8fFJ0O3N3aXRjaCh0aGlzLnR5cGUpe2Nhc2VcInBhcmFsbGVsXCI6cmV0dXJuIGQodGhpcy5pbml0aWFsU3RhdGVWYWx1ZSwoZnVuY3Rpb24oZSxyKXtyZXR1cm4gZT9uLmdldFN0YXRlTm9kZShyKS5yZXNvbHZlKHRbcl18fGUpOlJ0fSkpO2Nhc2VcImNvbXBvdW5kXCI6aWYoQSh0KSl7dmFyIHI9dGhpcy5nZXRTdGF0ZU5vZGUodCk7cmV0dXJuXCJwYXJhbGxlbFwiPT09ci50eXBlfHxcImNvbXBvdW5kXCI9PT1yLnR5cGU/KChlPXt9KVt0XT1yLmluaXRpYWxTdGF0ZVZhbHVlLGUpOnR9cmV0dXJuIHModCkubGVuZ3RoP2QodCwoZnVuY3Rpb24odCxlKXtyZXR1cm4gdD9uLmdldFN0YXRlTm9kZShlKS5yZXNvbHZlKHQpOlJ0fSkpOnRoaXMuaW5pdGlhbFN0YXRlVmFsdWV8fHt9O2RlZmF1bHQ6cmV0dXJuIHR8fFJ0fX0sYS5wcm90b3R5cGUuZ2V0UmVzb2x2ZWRQYXRoPWZ1bmN0aW9uKHQpe2lmKE10KHQpKXt2YXIgZT10aGlzLm1hY2hpbmUuaWRNYXBbdC5zbGljZShcIiNcIi5sZW5ndGgpXTtpZighZSl0aHJvdyBuZXcgRXJyb3IoXCJVbmFibGUgdG8gZmluZCBzdGF0ZSBub2RlICdcIi5jb25jYXQodCxcIidcIikpO3JldHVybiBlLnBhdGh9cmV0dXJuIGgodCx0aGlzLmRlbGltaXRlcil9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLnByb3RvdHlwZSxcImluaXRpYWxTdGF0ZVZhbHVlXCIse2dldDpmdW5jdGlvbigpe3ZhciB0LGU7aWYodGhpcy5fX2NhY2hlLmluaXRpYWxTdGF0ZVZhbHVlKXJldHVybiB0aGlzLl9fY2FjaGUuaW5pdGlhbFN0YXRlVmFsdWU7aWYoXCJwYXJhbGxlbFwiPT09dGhpcy50eXBlKWU9cCh0aGlzLnN0YXRlcywoZnVuY3Rpb24odCl7cmV0dXJuIHQuaW5pdGlhbFN0YXRlVmFsdWV8fFJ0fSksKGZ1bmN0aW9uKHQpe3JldHVybiEoXCJoaXN0b3J5XCI9PT10LnR5cGUpfSkpO2Vsc2UgaWYodm9pZCAwIT09dGhpcy5pbml0aWFsKXtpZighdGhpcy5zdGF0ZXNbdGhpcy5pbml0aWFsXSl0aHJvdyBuZXcgRXJyb3IoXCJJbml0aWFsIHN0YXRlICdcIi5jb25jYXQodGhpcy5pbml0aWFsLFwiJyBub3QgZm91bmQgb24gJ1wiKS5jb25jYXQodGhpcy5rZXksXCInXCIpKTtlPUYodGhpcy5zdGF0ZXNbdGhpcy5pbml0aWFsXSk/dGhpcy5pbml0aWFsOigodD17fSlbdGhpcy5pbml0aWFsXT10aGlzLnN0YXRlc1t0aGlzLmluaXRpYWxdLmluaXRpYWxTdGF0ZVZhbHVlLHQpfWVsc2UgZT17fTtyZXR1cm4gdGhpcy5fX2NhY2hlLmluaXRpYWxTdGF0ZVZhbHVlPWUsdGhpcy5fX2NhY2hlLmluaXRpYWxTdGF0ZVZhbHVlfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGEucHJvdG90eXBlLmdldEluaXRpYWxTdGF0ZT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuZ2V0U3RhdGVOb2Rlcyh0KTtyZXR1cm4gdGhpcy5yZXNvbHZlVHJhbnNpdGlvbih7Y29uZmlndXJhdGlvbjpuLGVudHJ5U2V0Om4sZXhpdFNldDpbXSx0cmFuc2l0aW9uczpbXSxzb3VyY2U6dm9pZCAwLGFjdGlvbnM6W119LHZvaWQgMCx2b2lkIDAsZSl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLnByb3RvdHlwZSxcImluaXRpYWxTdGF0ZVwiLHtnZXQ6ZnVuY3Rpb24oKXt0aGlzLl9pbml0KCk7dmFyIHQ9dGhpcy5pbml0aWFsU3RhdGVWYWx1ZTtpZighdCl0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgcmV0cmlldmUgaW5pdGlhbCBzdGF0ZSBmcm9tIHNpbXBsZSBzdGF0ZSAnXCIuY29uY2F0KHRoaXMuaWQsXCInLlwiKSk7cmV0dXJuIHRoaXMuZ2V0SW5pdGlhbFN0YXRlKHQpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLnByb3RvdHlwZSxcInRhcmdldFwiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgdDtpZihcImhpc3RvcnlcIj09PXRoaXMudHlwZSl7dmFyIGU9dGhpcy5jb25maWc7dD1BKGUudGFyZ2V0KSYmTXQoZS50YXJnZXQpP2wodGhpcy5tYWNoaW5lLmdldFN0YXRlTm9kZUJ5SWQoZS50YXJnZXQpLnBhdGguc2xpY2UodGhpcy5wYXRoLmxlbmd0aC0xKSk6ZS50YXJnZXR9cmV0dXJuIHR9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksYS5wcm90b3R5cGUuZ2V0UmVsYXRpdmVTdGF0ZU5vZGVzPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdm9pZCAwPT09biYmKG49ITApLG4/XCJoaXN0b3J5XCI9PT10LnR5cGU/dC5yZXNvbHZlSGlzdG9yeShlKTp0LmluaXRpYWxTdGF0ZU5vZGVzOlt0XX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGEucHJvdG90eXBlLFwiaW5pdGlhbFN0YXRlTm9kZXNcIix7Z2V0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gRih0aGlzKT9bdGhpc106XCJjb21wb3VuZFwiIT09dGhpcy50eXBlfHx0aGlzLmluaXRpYWw/Zyh5KHRoaXMuaW5pdGlhbFN0YXRlVmFsdWUpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHQuZ2V0RnJvbVJlbGF0aXZlUGF0aChlKX0pKSk6W3RoaXNdfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGEucHJvdG90eXBlLmdldEZyb21SZWxhdGl2ZVBhdGg9ZnVuY3Rpb24odCl7aWYoIXQubGVuZ3RoKXJldHVyblt0aGlzXTt2YXIgZT1pKHQpLG49ZVswXSxyPWUuc2xpY2UoMSk7aWYoIXRoaXMuc3RhdGVzKXRocm93IG5ldyBFcnJvcihcIkNhbm5vdCByZXRyaWV2ZSBzdWJQYXRoICdcIi5jb25jYXQobixcIicgZnJvbSBub2RlIHdpdGggbm8gc3RhdGVzXCIpKTt2YXIgbz10aGlzLmdldFN0YXRlTm9kZShuKTtpZihcImhpc3RvcnlcIj09PW8udHlwZSlyZXR1cm4gby5yZXNvbHZlSGlzdG9yeSgpO2lmKCF0aGlzLnN0YXRlc1tuXSl0aHJvdyBuZXcgRXJyb3IoXCJDaGlsZCBzdGF0ZSAnXCIuY29uY2F0KG4sXCInIGRvZXMgbm90IGV4aXN0IG9uICdcIikuY29uY2F0KHRoaXMuaWQsXCInXCIpKTtyZXR1cm4gdGhpcy5zdGF0ZXNbbl0uZ2V0RnJvbVJlbGF0aXZlUGF0aChyKX0sYS5wcm90b3R5cGUuaGlzdG9yeVZhbHVlPWZ1bmN0aW9uKHQpe2lmKHModGhpcy5zdGF0ZXMpLmxlbmd0aClyZXR1cm57Y3VycmVudDp0fHx0aGlzLmluaXRpYWxTdGF0ZVZhbHVlLHN0YXRlczpwKHRoaXMuc3RhdGVzLChmdW5jdGlvbihlLG4pe2lmKCF0KXJldHVybiBlLmhpc3RvcnlWYWx1ZSgpO3ZhciByPUEodCk/dm9pZCAwOnRbbl07cmV0dXJuIGUuaGlzdG9yeVZhbHVlKHJ8fGUuaW5pdGlhbFN0YXRlVmFsdWUpfSksKGZ1bmN0aW9uKHQpe3JldHVybiF0Lmhpc3Rvcnl9KSl9fSxhLnByb3RvdHlwZS5yZXNvbHZlSGlzdG9yeT1mdW5jdGlvbih0KXt2YXIgZT10aGlzO2lmKFwiaGlzdG9yeVwiIT09dGhpcy50eXBlKXJldHVyblt0aGlzXTt2YXIgbj10aGlzLnBhcmVudDtpZighdCl7dmFyIGk9dGhpcy50YXJnZXQ7cmV0dXJuIGk/Zyh5KGkpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIG4uZ2V0RnJvbVJlbGF0aXZlUGF0aCh0KX0pKSk6bi5pbml0aWFsU3RhdGVOb2Rlc312YXIgbyxhLHM9KG89bi5wYXRoLGE9XCJzdGF0ZXNcIixmdW5jdGlvbih0KXt2YXIgZSxuLGk9dDt0cnl7Zm9yKHZhciBzPXIobyksYz1zLm5leHQoKTshYy5kb25lO2M9cy5uZXh0KCkpe3ZhciB1PWMudmFsdWU7aT1pW2FdW3VdfX1jYXRjaCh0KXtlPXtlcnJvcjp0fX1maW5hbGx5e3RyeXtjJiYhYy5kb25lJiYobj1zLnJldHVybikmJm4uY2FsbChzKX1maW5hbGx5e2lmKGUpdGhyb3cgZS5lcnJvcn19cmV0dXJuIGl9KSh0KS5jdXJyZW50O3JldHVybiBBKHMpP1tuLmdldFN0YXRlTm9kZShzKV06Zyh5KHMpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuXCJkZWVwXCI9PT1lLmhpc3Rvcnk/bi5nZXRGcm9tUmVsYXRpdmVQYXRoKHQpOltuLnN0YXRlc1t0WzBdXV19KSkpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYS5wcm90b3R5cGUsXCJzdGF0ZUlkc1wiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9ZyhzKHRoaXMuc3RhdGVzKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiB0LnN0YXRlc1tlXS5zdGF0ZUlkc30pKSk7cmV0dXJuW3RoaXMuaWRdLmNvbmNhdChlKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYS5wcm90b3R5cGUsXCJldmVudHNcIix7Z2V0OmZ1bmN0aW9uKCl7dmFyIHQsZSxuLGk7aWYodGhpcy5fX2NhY2hlLmV2ZW50cylyZXR1cm4gdGhpcy5fX2NhY2hlLmV2ZW50czt2YXIgbz10aGlzLnN0YXRlcyxhPW5ldyBTZXQodGhpcy5vd25FdmVudHMpO2lmKG8pdHJ5e2Zvcih2YXIgYz1yKHMobykpLHU9Yy5uZXh0KCk7IXUuZG9uZTt1PWMubmV4dCgpKXt2YXIgaD1vW3UudmFsdWVdO2lmKGguc3RhdGVzKXRyeXtmb3IodmFyIGY9KG49dm9pZCAwLHIoaC5ldmVudHMpKSxsPWYubmV4dCgpOyFsLmRvbmU7bD1mLm5leHQoKSl7dmFyIGQ9bC52YWx1ZTthLmFkZChcIlwiLmNvbmNhdChkKSl9fWNhdGNoKHQpe249e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e2wmJiFsLmRvbmUmJihpPWYucmV0dXJuKSYmaS5jYWxsKGYpfWZpbmFsbHl7aWYobil0aHJvdyBuLmVycm9yfX19fWNhdGNoKGUpe3Q9e2Vycm9yOmV9fWZpbmFsbHl7dHJ5e3UmJiF1LmRvbmUmJihlPWMucmV0dXJuKSYmZS5jYWxsKGMpfWZpbmFsbHl7aWYodCl0aHJvdyB0LmVycm9yfX1yZXR1cm4gdGhpcy5fX2NhY2hlLmV2ZW50cz1BcnJheS5mcm9tKGEpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLnByb3RvdHlwZSxcIm93bkV2ZW50c1wiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgdD1uZXcgU2V0KHRoaXMudHJhbnNpdGlvbnMuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4hKCF0LnRhcmdldCYmIXQuYWN0aW9ucy5sZW5ndGgmJnQuaW50ZXJuYWwpfSkpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuZXZlbnRUeXBlfSkpKTtyZXR1cm4gQXJyYXkuZnJvbSh0KX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxhLnByb3RvdHlwZS5yZXNvbHZlVGFyZ2V0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYodm9pZCAwIT09dClyZXR1cm4gdC5tYXAoKGZ1bmN0aW9uKHQpe2lmKCFBKHQpKXJldHVybiB0O3ZhciBuPXRbMF09PT1lLmRlbGltaXRlcjtpZihuJiYhZS5wYXJlbnQpcmV0dXJuIGUuZ2V0U3RhdGVOb2RlQnlQYXRoKHQuc2xpY2UoMSkpO3ZhciByPW4/ZS5rZXkrdDp0O2lmKCFlLnBhcmVudClyZXR1cm4gZS5nZXRTdGF0ZU5vZGVCeVBhdGgocik7dHJ5e3JldHVybiBlLnBhcmVudC5nZXRTdGF0ZU5vZGVCeVBhdGgocil9Y2F0Y2godCl7dGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCB0cmFuc2l0aW9uIGRlZmluaXRpb24gZm9yIHN0YXRlIG5vZGUgJ1wiLmNvbmNhdChlLmlkLFwiJzpcXG5cIikuY29uY2F0KHQubWVzc2FnZSkpfX0pKX0sYS5wcm90b3R5cGUuZm9ybWF0VHJhbnNpdGlvbj1mdW5jdGlvbih0KXt2YXIgbj10aGlzLHI9ZnVuY3Rpb24odCl7aWYodm9pZCAwIT09dCYmXCJcIiE9PXQpcmV0dXJuIFModCl9KHQudGFyZ2V0KSxpPVwiaW50ZXJuYWxcImluIHQ/dC5pbnRlcm5hbDohcnx8ci5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4gQSh0KSYmdFswXT09PW4uZGVsaW1pdGVyfSkpLG89dGhpcy5tYWNoaW5lLm9wdGlvbnMuZ3VhcmRzLGE9dGhpcy5yZXNvbHZlVGFyZ2V0KHIpLHM9ZShlKHt9LHQpLHthY3Rpb25zOmR0KFModC5hY3Rpb25zKSksY29uZDpPKHQuY29uZCxvKSx0YXJnZXQ6YSxzb3VyY2U6dGhpcyxpbnRlcm5hbDppLGV2ZW50VHlwZTp0LmV2ZW50LHRvSlNPTjpmdW5jdGlvbigpe3JldHVybiBlKGUoe30scykse3RhcmdldDpzLnRhcmdldD9zLnRhcmdldC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVyblwiI1wiLmNvbmNhdCh0LmlkKX0pKTp2b2lkIDAsc291cmNlOlwiI1wiLmNvbmNhdChuLmlkKX0pfX0pO3JldHVybiBzfSxhLnByb3RvdHlwZS5mb3JtYXRUcmFuc2l0aW9ucz1mdW5jdGlvbigpe3ZhciB0LGUsYSxjPXRoaXM7aWYodGhpcy5jb25maWcub24paWYoQXJyYXkuaXNBcnJheSh0aGlzLmNvbmZpZy5vbikpYT10aGlzLmNvbmZpZy5vbjtlbHNle3ZhciB1PXRoaXMuY29uZmlnLm9uLGg9dVtcIipcIl0sZj12b2lkIDA9PT1oP1tdOmgsbD1uKHUsW1wiKlwiXSk7YT1nKHMobCkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gRCh0LGxbdF0pfSkpLmNvbmNhdChEKFwiKlwiLGYpKSl9ZWxzZSBhPVtdO3ZhciBkPXRoaXMuY29uZmlnLmFsd2F5cz9EKFwiXCIsdGhpcy5jb25maWcuYWx3YXlzKTpbXSxwPXRoaXMuY29uZmlnLm9uRG9uZT9EKFN0cmluZyhUdCh0aGlzLmlkKSksdGhpcy5jb25maWcub25Eb25lKTpbXSx2PWcodGhpcy5pbnZva2UubWFwKChmdW5jdGlvbih0KXt2YXIgZT1bXTtyZXR1cm4gdC5vbkRvbmUmJmUucHVzaC5hcHBseShlLG8oW10saShEKFN0cmluZyhOdCh0LmlkKSksdC5vbkRvbmUpKSwhMSkpLHQub25FcnJvciYmZS5wdXNoLmFwcGx5KGUsbyhbXSxpKEQoU3RyaW5nKEF0KHQuaWQpKSx0Lm9uRXJyb3IpKSwhMSkpLGV9KSkpLHk9dGhpcy5hZnRlcixtPWcobyhvKG8obyhbXSxpKHApLCExKSxpKHYpLCExKSxpKGEpLCExKSxpKGQpLCExKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBTKHQpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGMuZm9ybWF0VHJhbnNpdGlvbih0KX0pKX0pKSk7dHJ5e2Zvcih2YXIgeD1yKHkpLHc9eC5uZXh0KCk7IXcuZG9uZTt3PXgubmV4dCgpKXt2YXIgYj13LnZhbHVlO20ucHVzaChiKX19Y2F0Y2goZSl7dD17ZXJyb3I6ZX19ZmluYWxseXt0cnl7dyYmIXcuZG9uZSYmKGU9eC5yZXR1cm4pJiZlLmNhbGwoeCl9ZmluYWxseXtpZih0KXRocm93IHQuZXJyb3J9fXJldHVybiBtfSxhfSgpO3ZhciBGdD17ZGVmZXJFdmVudHM6ITF9LFV0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt0aGlzLnByb2Nlc3NpbmdFdmVudD0hMSx0aGlzLnF1ZXVlPVtdLHRoaXMuaW5pdGlhbGl6ZWQ9ITEsdGhpcy5vcHRpb25zPWUoZSh7fSxGdCksdCl9cmV0dXJuIHQucHJvdG90eXBlLmluaXRpYWxpemU9ZnVuY3Rpb24odCl7aWYodGhpcy5pbml0aWFsaXplZD0hMCx0KXtpZighdGhpcy5vcHRpb25zLmRlZmVyRXZlbnRzKXJldHVybiB2b2lkIHRoaXMuc2NoZWR1bGUodCk7dGhpcy5wcm9jZXNzKHQpfXRoaXMuZmx1c2hFdmVudHMoKX0sdC5wcm90b3R5cGUuc2NoZWR1bGU9ZnVuY3Rpb24odCl7aWYodGhpcy5pbml0aWFsaXplZCYmIXRoaXMucHJvY2Vzc2luZ0V2ZW50KXtpZigwIT09dGhpcy5xdWV1ZS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKFwiRXZlbnQgcXVldWUgc2hvdWxkIGJlIGVtcHR5IHdoZW4gaXQgaXMgbm90IHByb2Nlc3NpbmcgZXZlbnRzXCIpO3RoaXMucHJvY2Vzcyh0KSx0aGlzLmZsdXNoRXZlbnRzKCl9ZWxzZSB0aGlzLnF1ZXVlLnB1c2godCl9LHQucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5xdWV1ZT1bXX0sdC5wcm90b3R5cGUuZmx1c2hFdmVudHM9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5xdWV1ZS5zaGlmdCgpO3Q7KXRoaXMucHJvY2Vzcyh0KSx0PXRoaXMucXVldWUuc2hpZnQoKX0sdC5wcm90b3R5cGUucHJvY2Vzcz1mdW5jdGlvbih0KXt0aGlzLnByb2Nlc3NpbmdFdmVudD0hMDt0cnl7dCgpfWNhdGNoKHQpe3Rocm93IHRoaXMuY2xlYXIoKSx0fWZpbmFsbHl7dGhpcy5wcm9jZXNzaW5nRXZlbnQ9ITF9fSx0fSgpLEJ0PW5ldyBNYXAsSnQ9MCxxdD1mdW5jdGlvbigpe3JldHVyblwieDpcIi5jb25jYXQoSnQrKyl9LCR0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIEJ0LnNldCh0LGUpLHR9LFh0PWZ1bmN0aW9uKHQpe3JldHVybiBCdC5nZXQodCl9LEh0PWZ1bmN0aW9uKHQpe0J0LmRlbGV0ZSh0KX07ZnVuY3Rpb24gR3QoKXtyZXR1cm5cInVuZGVmaW5lZFwiIT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBzZWxmP3NlbGY6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6dm9pZCAwfWZ1bmN0aW9uIEt0KHQpe2lmKEd0KCkpe3ZhciBlPWZ1bmN0aW9uKCl7dmFyIHQ9R3QoKTtpZih0JiZcIl9feHN0YXRlX19cImluIHQpcmV0dXJuIHQuX194c3RhdGVfX30oKTtlJiZlLnJlZ2lzdGVyKHQpfX1mdW5jdGlvbiBRdCh0LG4pe3ZvaWQgMD09PW4mJihuPXt9KTt2YXIgcixpPXQuaW5pdGlhbFN0YXRlLG89bmV3IFNldCxhPVtdLHM9ITEsYz0ocj17aWQ6bi5pZCxzZW5kOmZ1bmN0aW9uKGUpe2EucHVzaChlKSxmdW5jdGlvbigpe2lmKCFzKXtmb3Iocz0hMDthLmxlbmd0aD4wOyl7dmFyIGU9YS5zaGlmdCgpO2k9dC50cmFuc2l0aW9uKGksZSx1KSxvLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm5leHQoaSl9KSl9cz0hMX19KCl9LGdldFNuYXBzaG90OmZ1bmN0aW9uKCl7cmV0dXJuIGl9LHN1YnNjcmliZTpmdW5jdGlvbih0LGUsbil7dmFyIHI9eih0LGUsbik7cmV0dXJuIG8uYWRkKHIpLHIubmV4dChpKSx7dW5zdWJzY3JpYmU6ZnVuY3Rpb24oKXtvLmRlbGV0ZShyKX19fX0sZSh7c3Vic2NyaWJlOmZ1bmN0aW9uKCl7cmV0dXJue3Vuc3Vic2NyaWJlOmZ1bmN0aW9uKCl7fX19LGlkOlwiYW5vbnltb3VzXCIsZ2V0U25hcHNob3Q6ZnVuY3Rpb24oKXt9fSxyKSksdT17cGFyZW50Om4ucGFyZW50LHNlbGY6YyxpZDpuLmlkfHxcImFub255bW91c1wiLG9ic2VydmVyczpvfTtyZXR1cm4gaT10LnN0YXJ0P3Quc3RhcnQodSk6aSxjfXZhciBXdCxZdD17c3luYzohMSxhdXRvRm9yd2FyZDohMX07KFd0PXQuSW50ZXJwcmV0ZXJTdGF0dXN8fCh0LkludGVycHJldGVyU3RhdHVzPXt9KSlbV3QuTm90U3RhcnRlZD0wXT1cIk5vdFN0YXJ0ZWRcIixXdFtXdC5SdW5uaW5nPTFdPVwiUnVubmluZ1wiLFd0W1d0LlN0b3BwZWQ9Ml09XCJTdG9wcGVkXCI7dmFyIFp0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbihyLGkpe3ZhciBvPXRoaXM7dm9pZCAwPT09aSYmKGk9bi5kZWZhdWx0T3B0aW9ucyksdGhpcy5tYWNoaW5lPXIsdGhpcy5zY2hlZHVsZXI9bmV3IFV0LHRoaXMuZGVsYXllZEV2ZW50c01hcD17fSx0aGlzLmxpc3RlbmVycz1uZXcgU2V0LHRoaXMuY29udGV4dExpc3RlbmVycz1uZXcgU2V0LHRoaXMuc3RvcExpc3RlbmVycz1uZXcgU2V0LHRoaXMuZG9uZUxpc3RlbmVycz1uZXcgU2V0LHRoaXMuZXZlbnRMaXN0ZW5lcnM9bmV3IFNldCx0aGlzLnNlbmRMaXN0ZW5lcnM9bmV3IFNldCx0aGlzLmluaXRpYWxpemVkPSExLHRoaXMuc3RhdHVzPXQuSW50ZXJwcmV0ZXJTdGF0dXMuTm90U3RhcnRlZCx0aGlzLmNoaWxkcmVuPW5ldyBNYXAsdGhpcy5mb3J3YXJkVG89bmV3IFNldCx0aGlzLmluaXQ9dGhpcy5zdGFydCx0aGlzLnNlbmQ9ZnVuY3Rpb24oZSxuKXtpZihUKGUpKXJldHVybiBvLmJhdGNoKGUpLG8uc3RhdGU7dmFyIHI9TChWKGUsbikpO2lmKG8uc3RhdHVzPT09dC5JbnRlcnByZXRlclN0YXR1cy5TdG9wcGVkKXJldHVybiBvLnN0YXRlO2lmKG8uc3RhdHVzIT09dC5JbnRlcnByZXRlclN0YXR1cy5SdW5uaW5nJiYhby5vcHRpb25zLmRlZmVyRXZlbnRzKXRocm93IG5ldyBFcnJvcignRXZlbnQgXCInLmNvbmNhdChyLm5hbWUsJ1wiIHdhcyBzZW50IHRvIHVuaW5pdGlhbGl6ZWQgc2VydmljZSBcIicpLmNvbmNhdChvLm1hY2hpbmUuaWQsJ1wiLiBNYWtlIHN1cmUgLnN0YXJ0KCkgaXMgY2FsbGVkIGZvciB0aGlzIHNlcnZpY2UsIG9yIHNldCB7IGRlZmVyRXZlbnRzOiB0cnVlIH0gaW4gdGhlIHNlcnZpY2Ugb3B0aW9ucy5cXG5FdmVudDogJykuY29uY2F0KEpTT04uc3RyaW5naWZ5KHIuZGF0YSkpKTtyZXR1cm4gby5zY2hlZHVsZXIuc2NoZWR1bGUoKGZ1bmN0aW9uKCl7by5mb3J3YXJkKHIpO3ZhciB0PW8ubmV4dFN0YXRlKHIpO28udXBkYXRlKHQscil9KSksby5fc3RhdGV9LHRoaXMuc2VuZFRvPWZ1bmN0aW9uKG4scil7dmFyIGksYT1vLnBhcmVudCYmKHI9PT10LlNwZWNpYWxUYXJnZXRzLlBhcmVudHx8by5wYXJlbnQuaWQ9PT1yKSxzPWE/by5wYXJlbnQ6QShyKT9vLmNoaWxkcmVuLmdldChyKXx8WHQocik6KGk9cikmJlwiZnVuY3Rpb25cIj09dHlwZW9mIGkuc2VuZD9yOnZvaWQgMDtpZihzKVwibWFjaGluZVwiaW4gcz9zLnNlbmQoZShlKHt9LG4pLHtuYW1lOm4ubmFtZT09PWF0P1wiXCIuY29uY2F0KEF0KG8uaWQpKTpuLm5hbWUsb3JpZ2luOm8uc2Vzc2lvbklkfSkpOnMuc2VuZChuLmRhdGEpO2Vsc2UgaWYoIWEpdGhyb3cgbmV3IEVycm9yKFwiVW5hYmxlIHRvIHNlbmQgZXZlbnQgdG8gY2hpbGQgJ1wiLmNvbmNhdChyLFwiJyBmcm9tIHNlcnZpY2UgJ1wiKS5jb25jYXQoby5pZCxcIicuXCIpKX07dmFyIGE9ZShlKHt9LG4uZGVmYXVsdE9wdGlvbnMpLGkpLHM9YS5jbG9jayxjPWEubG9nZ2VyLHU9YS5wYXJlbnQsaD1hLmlkLGY9dm9pZCAwIT09aD9oOnIuaWQ7dGhpcy5pZD1mLHRoaXMubG9nZ2VyPWMsdGhpcy5jbG9jaz1zLHRoaXMucGFyZW50PXUsdGhpcy5vcHRpb25zPWEsdGhpcy5zY2hlZHVsZXI9bmV3IFV0KHtkZWZlckV2ZW50czp0aGlzLm9wdGlvbnMuZGVmZXJFdmVudHN9KSx0aGlzLnNlc3Npb25JZD1xdCgpfXJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJpbml0aWFsU3RhdGVcIix7Z2V0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5faW5pdGlhbFN0YXRlP3RoaXMuX2luaXRpYWxTdGF0ZTpqdCh0aGlzLChmdW5jdGlvbigpe3JldHVybiB0Ll9pbml0aWFsU3RhdGU9dC5tYWNoaW5lLmluaXRpYWxTdGF0ZSx0Ll9pbml0aWFsU3RhdGV9KSl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwic3RhdGVcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0YXRlfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLG4ucHJvdG90eXBlLmV4ZWN1dGU9ZnVuY3Rpb24odCxlKXt2YXIgbixpO3RyeXtmb3IodmFyIG89cih0LmFjdGlvbnMpLGE9by5uZXh0KCk7IWEuZG9uZTthPW8ubmV4dCgpKXt2YXIgcz1hLnZhbHVlO3RoaXMuZXhlYyhzLHQsZSl9fWNhdGNoKHQpe249e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e2EmJiFhLmRvbmUmJihpPW8ucmV0dXJuKSYmaS5jYWxsKG8pfWZpbmFsbHl7aWYobil0aHJvdyBuLmVycm9yfX19LG4ucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbih0LGUpe3ZhciBuLGksbyxhLHMsYyx1LGgsZj10aGlzO2lmKHQuX3Nlc3Npb25pZD10aGlzLnNlc3Npb25JZCx0aGlzLl9zdGF0ZT10LHRoaXMub3B0aW9ucy5leGVjdXRlJiZ0aGlzLmV4ZWN1dGUodGhpcy5zdGF0ZSksdGhpcy5jaGlsZHJlbi5mb3JFYWNoKChmdW5jdGlvbih0KXtmLnN0YXRlLmNoaWxkcmVuW3QuaWRdPXR9KSksdGhpcy5kZXZUb29scyYmdGhpcy5kZXZUb29scy5zZW5kKGUuZGF0YSx0KSx0LmV2ZW50KXRyeXtmb3IodmFyIGw9cih0aGlzLmV2ZW50TGlzdGVuZXJzKSxkPWwubmV4dCgpOyFkLmRvbmU7ZD1sLm5leHQoKSl7KDAsZC52YWx1ZSkodC5ldmVudCl9fWNhdGNoKHQpe249e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e2QmJiFkLmRvbmUmJihpPWwucmV0dXJuKSYmaS5jYWxsKGwpfWZpbmFsbHl7aWYobil0aHJvdyBuLmVycm9yfX10cnl7Zm9yKHZhciBwPXIodGhpcy5saXN0ZW5lcnMpLHY9cC5uZXh0KCk7IXYuZG9uZTt2PXAubmV4dCgpKXsoMCx2LnZhbHVlKSh0LHQuZXZlbnQpfX1jYXRjaCh0KXtvPXtlcnJvcjp0fX1maW5hbGx5e3RyeXt2JiYhdi5kb25lJiYoYT1wLnJldHVybikmJmEuY2FsbChwKX1maW5hbGx5e2lmKG8pdGhyb3cgby5lcnJvcn19dHJ5e2Zvcih2YXIgeT1yKHRoaXMuY29udGV4dExpc3RlbmVycyksZz15Lm5leHQoKTshZy5kb25lO2c9eS5uZXh0KCkpeygwLGcudmFsdWUpKHRoaXMuc3RhdGUuY29udGV4dCx0aGlzLnN0YXRlLmhpc3Rvcnk/dGhpcy5zdGF0ZS5oaXN0b3J5LmNvbnRleHQ6dm9pZCAwKX19Y2F0Y2godCl7cz17ZXJyb3I6dH19ZmluYWxseXt0cnl7ZyYmIWcuZG9uZSYmKGM9eS5yZXR1cm4pJiZjLmNhbGwoeSl9ZmluYWxseXtpZihzKXRocm93IHMuZXJyb3J9fXZhciBtPUgodC5jb25maWd1cmF0aW9ufHxbXSx0aGlzLm1hY2hpbmUpO2lmKHRoaXMuc3RhdGUuY29uZmlndXJhdGlvbiYmbSl7dmFyIFM9dC5jb25maWd1cmF0aW9uLmZpbmQoKGZ1bmN0aW9uKHQpe3JldHVyblwiZmluYWxcIj09PXQudHlwZSYmdC5wYXJlbnQ9PT1mLm1hY2hpbmV9KSksdz1TJiZTLmRvbmVEYXRhP3goUy5kb25lRGF0YSx0LmNvbnRleHQsZSk6dm9pZCAwO3RyeXtmb3IodmFyIGI9cih0aGlzLmRvbmVMaXN0ZW5lcnMpLF89Yi5uZXh0KCk7IV8uZG9uZTtfPWIubmV4dCgpKXsoMCxfLnZhbHVlKShOdCh0aGlzLmlkLHcpKX19Y2F0Y2godCl7dT17ZXJyb3I6dH19ZmluYWxseXt0cnl7XyYmIV8uZG9uZSYmKGg9Yi5yZXR1cm4pJiZoLmNhbGwoYil9ZmluYWxseXtpZih1KXRocm93IHUuZXJyb3J9fXRoaXMuc3RvcCgpfX0sbi5wcm90b3R5cGUub25UcmFuc2l0aW9uPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmxpc3RlbmVycy5hZGQoZSksdGhpcy5zdGF0dXM9PT10LkludGVycHJldGVyU3RhdHVzLlJ1bm5pbmcmJmUodGhpcy5zdGF0ZSx0aGlzLnN0YXRlLmV2ZW50KSx0aGlzfSxuLnByb3RvdHlwZS5zdWJzY3JpYmU9ZnVuY3Rpb24oZSxuLHIpe3ZhciBpLG89dGhpcztpZighZSlyZXR1cm57dW5zdWJzY3JpYmU6ZnVuY3Rpb24oKXt9fTt2YXIgYT1yO3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIGU/aT1lOihpPWUubmV4dC5iaW5kKGUpLGE9ZS5jb21wbGV0ZS5iaW5kKGUpKSx0aGlzLmxpc3RlbmVycy5hZGQoaSksdGhpcy5zdGF0dXM9PT10LkludGVycHJldGVyU3RhdHVzLlJ1bm5pbmcmJmkodGhpcy5zdGF0ZSksYSYmdGhpcy5vbkRvbmUoYSkse3Vuc3Vic2NyaWJlOmZ1bmN0aW9uKCl7aSYmby5saXN0ZW5lcnMuZGVsZXRlKGkpLGEmJm8uZG9uZUxpc3RlbmVycy5kZWxldGUoYSl9fX0sbi5wcm90b3R5cGUub25FdmVudD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5ldmVudExpc3RlbmVycy5hZGQodCksdGhpc30sbi5wcm90b3R5cGUub25TZW5kPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnNlbmRMaXN0ZW5lcnMuYWRkKHQpLHRoaXN9LG4ucHJvdG90eXBlLm9uQ2hhbmdlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNvbnRleHRMaXN0ZW5lcnMuYWRkKHQpLHRoaXN9LG4ucHJvdG90eXBlLm9uU3RvcD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5zdG9wTGlzdGVuZXJzLmFkZCh0KSx0aGlzfSxuLnByb3RvdHlwZS5vbkRvbmU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZG9uZUxpc3RlbmVycy5hZGQodCksdGhpc30sbi5wcm90b3R5cGUub2ZmPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmxpc3RlbmVycy5kZWxldGUodCksdGhpcy5ldmVudExpc3RlbmVycy5kZWxldGUodCksdGhpcy5zZW5kTGlzdGVuZXJzLmRlbGV0ZSh0KSx0aGlzLnN0b3BMaXN0ZW5lcnMuZGVsZXRlKHQpLHRoaXMuZG9uZUxpc3RlbmVycy5kZWxldGUodCksdGhpcy5jb250ZXh0TGlzdGVuZXJzLmRlbGV0ZSh0KSx0aGlzfSxuLnByb3RvdHlwZS5zdGFydD1mdW5jdGlvbihlKXt2YXIgbj10aGlzO2lmKHRoaXMuc3RhdHVzPT09dC5JbnRlcnByZXRlclN0YXR1cy5SdW5uaW5nKXJldHVybiB0aGlzOyR0KHRoaXMuc2Vzc2lvbklkLHRoaXMpLHRoaXMuaW5pdGlhbGl6ZWQ9ITAsdGhpcy5zdGF0dXM9dC5JbnRlcnByZXRlclN0YXR1cy5SdW5uaW5nO3ZhciByPXZvaWQgMD09PWU/dGhpcy5pbml0aWFsU3RhdGU6anQodGhpcywoZnVuY3Rpb24oKXtyZXR1cm4hQSh0PWUpJiZcInZhbHVlXCJpbiB0JiZcImhpc3RvcnlcImluIHQ/bi5tYWNoaW5lLnJlc29sdmVTdGF0ZShlKTpuLm1hY2hpbmUucmVzb2x2ZVN0YXRlKGt0LmZyb20oZSxuLm1hY2hpbmUuY29udGV4dCkpO3ZhciB0fSkpO3JldHVybiB0aGlzLm9wdGlvbnMuZGV2VG9vbHMmJnRoaXMuYXR0YWNoRGV2KCksdGhpcy5zY2hlZHVsZXIuaW5pdGlhbGl6ZSgoZnVuY3Rpb24oKXtuLnVwZGF0ZShyLGh0KX0pKSx0aGlzfSxuLnByb3RvdHlwZS5zdG9wPWZ1bmN0aW9uKCl7dmFyIGUsbixpLG8sYSxjLHUsaCxmLGwsZD10aGlzO3RyeXtmb3IodmFyIHA9cih0aGlzLmxpc3RlbmVycyksdj1wLm5leHQoKTshdi5kb25lO3Y9cC5uZXh0KCkpe3ZhciB5PXYudmFsdWU7dGhpcy5saXN0ZW5lcnMuZGVsZXRlKHkpfX1jYXRjaCh0KXtlPXtlcnJvcjp0fX1maW5hbGx5e3RyeXt2JiYhdi5kb25lJiYobj1wLnJldHVybikmJm4uY2FsbChwKX1maW5hbGx5e2lmKGUpdGhyb3cgZS5lcnJvcn19dHJ5e2Zvcih2YXIgZz1yKHRoaXMuc3RvcExpc3RlbmVycyksbT1nLm5leHQoKTshbS5kb25lO209Zy5uZXh0KCkpeyh5PW0udmFsdWUpKCksdGhpcy5zdG9wTGlzdGVuZXJzLmRlbGV0ZSh5KX19Y2F0Y2godCl7aT17ZXJyb3I6dH19ZmluYWxseXt0cnl7bSYmIW0uZG9uZSYmKG89Zy5yZXR1cm4pJiZvLmNhbGwoZyl9ZmluYWxseXtpZihpKXRocm93IGkuZXJyb3J9fXRyeXtmb3IodmFyIFM9cih0aGlzLmNvbnRleHRMaXN0ZW5lcnMpLHg9Uy5uZXh0KCk7IXguZG9uZTt4PVMubmV4dCgpKXt5PXgudmFsdWU7dGhpcy5jb250ZXh0TGlzdGVuZXJzLmRlbGV0ZSh5KX19Y2F0Y2godCl7YT17ZXJyb3I6dH19ZmluYWxseXt0cnl7eCYmIXguZG9uZSYmKGM9Uy5yZXR1cm4pJiZjLmNhbGwoUyl9ZmluYWxseXtpZihhKXRocm93IGEuZXJyb3J9fXRyeXtmb3IodmFyIHc9cih0aGlzLmRvbmVMaXN0ZW5lcnMpLGI9dy5uZXh0KCk7IWIuZG9uZTtiPXcubmV4dCgpKXt5PWIudmFsdWU7dGhpcy5kb25lTGlzdGVuZXJzLmRlbGV0ZSh5KX19Y2F0Y2godCl7dT17ZXJyb3I6dH19ZmluYWxseXt0cnl7YiYmIWIuZG9uZSYmKGg9dy5yZXR1cm4pJiZoLmNhbGwodyl9ZmluYWxseXtpZih1KXRocm93IHUuZXJyb3J9fWlmKCF0aGlzLmluaXRpYWxpemVkKXJldHVybiB0aGlzO3RoaXMuc3RhdGUuY29uZmlndXJhdGlvbi5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZSxuO3RyeXtmb3IodmFyIGk9cih0LmRlZmluaXRpb24uZXhpdCksbz1pLm5leHQoKTshby5kb25lO289aS5uZXh0KCkpe3ZhciBhPW8udmFsdWU7ZC5leGVjKGEsZC5zdGF0ZSl9fWNhdGNoKHQpe2U9e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e28mJiFvLmRvbmUmJihuPWkucmV0dXJuKSYmbi5jYWxsKGkpfWZpbmFsbHl7aWYoZSl0aHJvdyBlLmVycm9yfX19KSksdGhpcy5jaGlsZHJlbi5mb3JFYWNoKChmdW5jdGlvbih0KXtOKHQuc3RvcCkmJnQuc3RvcCgpfSkpO3RyeXtmb3IodmFyIF89cihzKHRoaXMuZGVsYXllZEV2ZW50c01hcCkpLEU9Xy5uZXh0KCk7IUUuZG9uZTtFPV8ubmV4dCgpKXt2YXIgVD1FLnZhbHVlO3RoaXMuY2xvY2suY2xlYXJUaW1lb3V0KHRoaXMuZGVsYXllZEV2ZW50c01hcFtUXSl9fWNhdGNoKHQpe2Y9e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e0UmJiFFLmRvbmUmJihsPV8ucmV0dXJuKSYmbC5jYWxsKF8pfWZpbmFsbHl7aWYoZil0aHJvdyBmLmVycm9yfX1yZXR1cm4gdGhpcy5zY2hlZHVsZXIuY2xlYXIoKSx0aGlzLmluaXRpYWxpemVkPSExLHRoaXMuc3RhdHVzPXQuSW50ZXJwcmV0ZXJTdGF0dXMuU3RvcHBlZCxIdCh0aGlzLnNlc3Npb25JZCksdGhpc30sbi5wcm90b3R5cGUuYmF0Y2g9ZnVuY3Rpb24obil7dmFyIGE9dGhpcztpZih0aGlzLnN0YXR1cz09PXQuSW50ZXJwcmV0ZXJTdGF0dXMuTm90U3RhcnRlZCYmdGhpcy5vcHRpb25zLmRlZmVyRXZlbnRzKTtlbHNlIGlmKHRoaXMuc3RhdHVzIT09dC5JbnRlcnByZXRlclN0YXR1cy5SdW5uaW5nKXRocm93IG5ldyBFcnJvcihcIlwiLmNvbmNhdChuLmxlbmd0aCwnIGV2ZW50KHMpIHdlcmUgc2VudCB0byB1bmluaXRpYWxpemVkIHNlcnZpY2UgXCInKS5jb25jYXQodGhpcy5tYWNoaW5lLmlkLCdcIi4gTWFrZSBzdXJlIC5zdGFydCgpIGlzIGNhbGxlZCBmb3IgdGhpcyBzZXJ2aWNlLCBvciBzZXQgeyBkZWZlckV2ZW50czogdHJ1ZSB9IGluIHRoZSBzZXJ2aWNlIG9wdGlvbnMuJykpO3RoaXMuc2NoZWR1bGVyLnNjaGVkdWxlKChmdW5jdGlvbigpe3ZhciB0LHMsYz1hLnN0YXRlLHU9ITEsaD1bXSxmPWZ1bmN0aW9uKHQpe3ZhciBuPUwodCk7YS5mb3J3YXJkKG4pLGM9anQoYSwoZnVuY3Rpb24oKXtyZXR1cm4gYS5tYWNoaW5lLnRyYW5zaXRpb24oYyxuKX0pKSxoLnB1c2guYXBwbHkoaCxvKFtdLGkoYy5hY3Rpb25zLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHI9YyxpPShuPXQpLmV4ZWMsZShlKHt9LG4pLHtleGVjOnZvaWQgMCE9PWk/ZnVuY3Rpb24oKXtyZXR1cm4gaShyLmNvbnRleHQsci5ldmVudCx7YWN0aW9uOm4sc3RhdGU6cixfZXZlbnQ6ci5fZXZlbnR9KX06dm9pZCAwfSk7dmFyIG4scixpfSkpKSwhMSkpLHU9dXx8ISFjLmNoYW5nZWR9O3RyeXtmb3IodmFyIGw9cihuKSxkPWwubmV4dCgpOyFkLmRvbmU7ZD1sLm5leHQoKSl7ZihkLnZhbHVlKX19Y2F0Y2goZSl7dD17ZXJyb3I6ZX19ZmluYWxseXt0cnl7ZCYmIWQuZG9uZSYmKHM9bC5yZXR1cm4pJiZzLmNhbGwobCl9ZmluYWxseXtpZih0KXRocm93IHQuZXJyb3J9fWMuY2hhbmdlZD11LGMuYWN0aW9ucz1oLGEudXBkYXRlKGMsTChuW24ubGVuZ3RoLTFdKSl9KSl9LG4ucHJvdG90eXBlLnNlbmRlcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5zZW5kLmJpbmQodGhpcyx0KX0sbi5wcm90b3R5cGUubmV4dFN0YXRlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj1MKHQpO2lmKDA9PT1uLm5hbWUuaW5kZXhPZihvdCkmJiF0aGlzLnN0YXRlLm5leHRFdmVudHMuc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuIDA9PT10LmluZGV4T2Yob3QpfSkpKXRocm93IG4uZGF0YS5kYXRhO3JldHVybiBqdCh0aGlzLChmdW5jdGlvbigpe3JldHVybiBlLm1hY2hpbmUudHJhbnNpdGlvbihlLnN0YXRlLG4pfSkpfSxuLnByb3RvdHlwZS5mb3J3YXJkPWZ1bmN0aW9uKHQpe3ZhciBlLG47dHJ5e2Zvcih2YXIgaT1yKHRoaXMuZm9yd2FyZFRvKSxvPWkubmV4dCgpOyFvLmRvbmU7bz1pLm5leHQoKSl7dmFyIGE9by52YWx1ZSxzPXRoaXMuY2hpbGRyZW4uZ2V0KGEpO2lmKCFzKXRocm93IG5ldyBFcnJvcihcIlVuYWJsZSB0byBmb3J3YXJkIGV2ZW50ICdcIi5jb25jYXQodCxcIicgZnJvbSBpbnRlcnByZXRlciAnXCIpLmNvbmNhdCh0aGlzLmlkLFwiJyB0byBub25leGlzdGFudCBjaGlsZCAnXCIpLmNvbmNhdChhLFwiJy5cIikpO3Muc2VuZCh0KX19Y2F0Y2godCl7ZT17ZXJyb3I6dH19ZmluYWxseXt0cnl7byYmIW8uZG9uZSYmKG49aS5yZXR1cm4pJiZuLmNhbGwoaSl9ZmluYWxseXtpZihlKXRocm93IGUuZXJyb3J9fX0sbi5wcm90b3R5cGUuZGVmZXI9ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLmRlbGF5ZWRFdmVudHNNYXBbdC5pZF09dGhpcy5jbG9jay5zZXRUaW1lb3V0KChmdW5jdGlvbigpe3QudG8/ZS5zZW5kVG8odC5fZXZlbnQsdC50byk6ZS5zZW5kKHQuX2V2ZW50KX0pLHQuZGVsYXkpfSxuLnByb3RvdHlwZS5jYW5jZWw9ZnVuY3Rpb24odCl7dGhpcy5jbG9jay5jbGVhclRpbWVvdXQodGhpcy5kZWxheWVkRXZlbnRzTWFwW3RdKSxkZWxldGUgdGhpcy5kZWxheWVkRXZlbnRzTWFwW3RdfSxuLnByb3RvdHlwZS5leGVjPWZ1bmN0aW9uKGUsbixyKXt2b2lkIDA9PT1yJiYocj10aGlzLm1hY2hpbmUub3B0aW9ucy5hY3Rpb25zKTt2YXIgaT1uLmNvbnRleHQsbz1uLl9ldmVudCxhPWUuZXhlY3x8ZnQoZS50eXBlLHIpLHM9TihhKT9hOmE/YS5leGVjOmUuZXhlYztpZihzKXRyeXtyZXR1cm4gcyhpLG8uZGF0YSx7YWN0aW9uOmUsc3RhdGU6dGhpcy5zdGF0ZSxfZXZlbnQ6b30pfWNhdGNoKHQpe3Rocm93IHRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5zZW5kKHt0eXBlOlwieHN0YXRlLmVycm9yXCIsZGF0YTp0fSksdH1zd2l0Y2goZS50eXBlKXtjYXNlIFk6dmFyIGM9ZTtpZihcIm51bWJlclwiPT10eXBlb2YgYy5kZWxheSlyZXR1cm4gdm9pZCB0aGlzLmRlZmVyKGMpO2MudG8/dGhpcy5zZW5kVG8oYy5fZXZlbnQsYy50byk6dGhpcy5zZW5kKGMuX2V2ZW50KTticmVhaztjYXNlIFo6dGhpcy5jYW5jZWwoZS5zZW5kSWQpO2JyZWFrO2Nhc2UgSzp2YXIgdT1lLmFjdGl2aXR5O2lmKCF0aGlzLnN0YXRlLmFjdGl2aXRpZXNbdS5pZHx8dS50eXBlXSlicmVhaztpZih1LnR5cGU9PT10LkFjdGlvblR5cGVzLkludm9rZSl7dmFyIGg9TSh1LnNyYyksZj10aGlzLm1hY2hpbmUub3B0aW9ucy5zZXJ2aWNlcz90aGlzLm1hY2hpbmUub3B0aW9ucy5zZXJ2aWNlc1toLnR5cGVdOnZvaWQgMCxsPXUuaWQsZD11LmRhdGEscD1cImF1dG9Gb3J3YXJkXCJpbiB1P3UuYXV0b0ZvcndhcmQ6ISF1LmZvcndhcmQ7aWYoIWYpcmV0dXJuO3ZhciB2PWQ/eChkLGksbyk6dm9pZCAwO2lmKFwic3RyaW5nXCI9PXR5cGVvZiBmKXJldHVybjt2YXIgeT1OKGYpP2YoaSxvLmRhdGEse2RhdGE6dixzcmM6aCxtZXRhOnUubWV0YX0pOmY7aWYoIXkpcmV0dXJuO3ZhciBnPXZvaWQgMDtrKHkpJiYoeT12P3kud2l0aENvbnRleHQodik6eSxnPXthdXRvRm9yd2FyZDpwfSksdGhpcy5zcGF3bih5LGwsZyl9ZWxzZSB0aGlzLnNwYXduQWN0aXZpdHkodSk7YnJlYWs7Y2FzZSBROnRoaXMuc3RvcENoaWxkKGUuYWN0aXZpdHkuaWQpO2JyZWFrO2Nhc2UgbnQ6dmFyIG09ZS5sYWJlbCxTPWUudmFsdWU7bT90aGlzLmxvZ2dlcihtLFMpOnRoaXMubG9nZ2VyKFMpfX0sbi5wcm90b3R5cGUucmVtb3ZlQ2hpbGQ9ZnVuY3Rpb24odCl7dmFyIGU7dGhpcy5jaGlsZHJlbi5kZWxldGUodCksdGhpcy5mb3J3YXJkVG8uZGVsZXRlKHQpLG51bGw9PT0oZT10aGlzLnN0YXRlKXx8dm9pZCAwPT09ZXx8ZGVsZXRlIGUuY2hpbGRyZW5bdF19LG4ucHJvdG90eXBlLnN0b3BDaGlsZD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmNoaWxkcmVuLmdldCh0KTtlJiYodGhpcy5yZW1vdmVDaGlsZCh0KSxOKGUuc3RvcCkmJmUuc3RvcCgpKX0sbi5wcm90b3R5cGUuc3Bhd249ZnVuY3Rpb24odCxuLHIpe2lmKHcodCkpcmV0dXJuIHRoaXMuc3Bhd25Qcm9taXNlKFByb21pc2UucmVzb2x2ZSh0KSxuKTtpZihOKHQpKXJldHVybiB0aGlzLnNwYXduQ2FsbGJhY2sodCxuKTtpZihmdW5jdGlvbih0KXt0cnl7cmV0dXJuXCJmdW5jdGlvblwiPT10eXBlb2YgdC5zZW5kfWNhdGNoKHQpe3JldHVybiExfX0obz10KSYmXCJpZFwiaW4gbylyZXR1cm4gdGhpcy5zcGF3bkFjdG9yKHQsbik7aWYoZnVuY3Rpb24odCl7dHJ5e3JldHVyblwic3Vic2NyaWJlXCJpbiB0JiZOKHQuc3Vic2NyaWJlKX1jYXRjaCh0KXtyZXR1cm4hMX19KHQpKXJldHVybiB0aGlzLnNwYXduT2JzZXJ2YWJsZSh0LG4pO2lmKGsodCkpcmV0dXJuIHRoaXMuc3Bhd25NYWNoaW5lKHQsZShlKHt9LHIpLHtpZDpufSkpO2lmKG51bGwhPT0oaT10KSYmXCJvYmplY3RcIj09dHlwZW9mIGkmJlwidHJhbnNpdGlvblwiaW4gaSYmXCJmdW5jdGlvblwiPT10eXBlb2YgaS50cmFuc2l0aW9uKXJldHVybiB0aGlzLnNwYXduQmVoYXZpb3IodCxuKTt0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byBzcGF3biBlbnRpdHkgXCInLmNvbmNhdChuLCdcIiBvZiB0eXBlIFwiJykuY29uY2F0KHR5cGVvZiB0LCdcIi4nKSk7dmFyIGksb30sbi5wcm90b3R5cGUuc3Bhd25NYWNoaW5lPWZ1bmN0aW9uKHQscil7dmFyIGk9dGhpczt2b2lkIDA9PT1yJiYocj17fSk7dmFyIG89bmV3IG4odCxlKGUoe30sdGhpcy5vcHRpb25zKSx7cGFyZW50OnRoaXMsaWQ6ci5pZHx8dC5pZH0pKSxhPWUoZSh7fSxZdCkscik7YS5zeW5jJiZvLm9uVHJhbnNpdGlvbigoZnVuY3Rpb24odCl7aS5zZW5kKHN0LHtzdGF0ZTp0LGlkOm8uaWR9KX0pKTt2YXIgcz1vO3JldHVybiB0aGlzLmNoaWxkcmVuLnNldChvLmlkLHMpLGEuYXV0b0ZvcndhcmQmJnRoaXMuZm9yd2FyZFRvLmFkZChvLmlkKSxvLm9uRG9uZSgoZnVuY3Rpb24odCl7aS5yZW1vdmVDaGlsZChvLmlkKSxpLnNlbmQoTCh0LHtvcmlnaW46by5pZH0pKX0pKS5zdGFydCgpLHN9LG4ucHJvdG90eXBlLnNwYXduQmVoYXZpb3I9ZnVuY3Rpb24odCxlKXt2YXIgbj1RdCh0LHtpZDplLHBhcmVudDp0aGlzfSk7cmV0dXJuIHRoaXMuY2hpbGRyZW4uc2V0KGUsbiksbn0sbi5wcm90b3R5cGUuc3Bhd25Qcm9taXNlPWZ1bmN0aW9uKHQsZSl7dmFyIG4scj10aGlzLGk9ITE7dC50aGVuKChmdW5jdGlvbih0KXtpfHwobj10LHIucmVtb3ZlQ2hpbGQoZSksci5zZW5kKEwoTnQoZSx0KSx7b3JpZ2luOmV9KSkpfSksKGZ1bmN0aW9uKHQpe2lmKCFpKXtyLnJlbW92ZUNoaWxkKGUpO3ZhciBuPUF0KGUsdCk7dHJ5e3Iuc2VuZChMKG4se29yaWdpbjplfSkpfWNhdGNoKHQpe3IuZGV2VG9vbHMmJnIuZGV2VG9vbHMuc2VuZChuLHIuc3RhdGUpLHIubWFjaGluZS5zdHJpY3QmJnIuc3RvcCgpfX19KSk7dmFyIG89e2lkOmUsc2VuZDpmdW5jdGlvbigpe30sc3Vic2NyaWJlOmZ1bmN0aW9uKGUsbixyKXt2YXIgaT16KGUsbixyKSxvPSExO3JldHVybiB0LnRoZW4oKGZ1bmN0aW9uKHQpe298fChpLm5leHQodCksb3x8aS5jb21wbGV0ZSgpKX0pLChmdW5jdGlvbih0KXtvfHxpLmVycm9yKHQpfSkpLHt1bnN1YnNjcmliZTpmdW5jdGlvbigpe3JldHVybiBvPSEwfX19LHN0b3A6ZnVuY3Rpb24oKXtpPSEwfSx0b0pTT046ZnVuY3Rpb24oKXtyZXR1cm57aWQ6ZX19LGdldFNuYXBzaG90OmZ1bmN0aW9uKCl7cmV0dXJuIG59fTtyZXR1cm4gdGhpcy5jaGlsZHJlbi5zZXQoZSxvKSxvfSxuLnByb3RvdHlwZS5zcGF3bkNhbGxiYWNrPWZ1bmN0aW9uKHQsZSl7dmFyIG4scixpPXRoaXMsbz0hMSxhPW5ldyBTZXQscz1uZXcgU2V0O3RyeXtyPXQoKGZ1bmN0aW9uKHQpe249dCxzLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JldHVybiBlKHQpfSkpLG98fGkuc2VuZChMKHQse29yaWdpbjplfSkpfSksKGZ1bmN0aW9uKHQpe2EuYWRkKHQpfSkpfWNhdGNoKHQpe3RoaXMuc2VuZChBdChlLHQpKX1pZih3KHIpKXJldHVybiB0aGlzLnNwYXduUHJvbWlzZShyLGUpO3ZhciBjPXtpZDplLHNlbmQ6ZnVuY3Rpb24odCl7cmV0dXJuIGEuZm9yRWFjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUodCl9KSl9LHN1YnNjcmliZTpmdW5jdGlvbih0KXtyZXR1cm4gcy5hZGQodCkse3Vuc3Vic2NyaWJlOmZ1bmN0aW9uKCl7cy5kZWxldGUodCl9fX0sc3RvcDpmdW5jdGlvbigpe289ITAsTihyKSYmcigpfSx0b0pTT046ZnVuY3Rpb24oKXtyZXR1cm57aWQ6ZX19LGdldFNuYXBzaG90OmZ1bmN0aW9uKCl7cmV0dXJuIG59fTtyZXR1cm4gdGhpcy5jaGlsZHJlbi5zZXQoZSxjKSxjfSxuLnByb3RvdHlwZS5zcGF3bk9ic2VydmFibGU9ZnVuY3Rpb24odCxlKXt2YXIgbixyPXRoaXMsaT10LnN1YnNjcmliZSgoZnVuY3Rpb24odCl7bj10LHIuc2VuZChMKHQse29yaWdpbjplfSkpfSksKGZ1bmN0aW9uKHQpe3IucmVtb3ZlQ2hpbGQoZSksci5zZW5kKEwoQXQoZSx0KSx7b3JpZ2luOmV9KSl9KSwoZnVuY3Rpb24oKXtyLnJlbW92ZUNoaWxkKGUpLHIuc2VuZChMKE50KGUpLHtvcmlnaW46ZX0pKX0pKSxvPXtpZDplLHNlbmQ6ZnVuY3Rpb24oKXt9LHN1YnNjcmliZTpmdW5jdGlvbihlLG4scil7cmV0dXJuIHQuc3Vic2NyaWJlKGUsbixyKX0sc3RvcDpmdW5jdGlvbigpe3JldHVybiBpLnVuc3Vic2NyaWJlKCl9LGdldFNuYXBzaG90OmZ1bmN0aW9uKCl7cmV0dXJuIG59LHRvSlNPTjpmdW5jdGlvbigpe3JldHVybntpZDplfX19O3JldHVybiB0aGlzLmNoaWxkcmVuLnNldChlLG8pLG99LG4ucHJvdG90eXBlLnNwYXduQWN0b3I9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5jaGlsZHJlbi5zZXQoZSx0KSx0fSxuLnByb3RvdHlwZS5zcGF3bkFjdGl2aXR5PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMubWFjaGluZS5vcHRpb25zJiZ0aGlzLm1hY2hpbmUub3B0aW9ucy5hY3Rpdml0aWVzP3RoaXMubWFjaGluZS5vcHRpb25zLmFjdGl2aXRpZXNbdC50eXBlXTp2b2lkIDA7aWYoZSl7dmFyIG49ZSh0aGlzLnN0YXRlLmNvbnRleHQsdCk7dGhpcy5zcGF3bkVmZmVjdCh0LmlkLG4pfX0sbi5wcm90b3R5cGUuc3Bhd25FZmZlY3Q9ZnVuY3Rpb24odCxlKXt0aGlzLmNoaWxkcmVuLnNldCh0LHtpZDp0LHNlbmQ6ZnVuY3Rpb24oKXt9LHN1YnNjcmliZTpmdW5jdGlvbigpe3JldHVybnt1bnN1YnNjcmliZTpmdW5jdGlvbigpe319fSxzdG9wOmV8fHZvaWQgMCxnZXRTbmFwc2hvdDpmdW5jdGlvbigpe30sdG9KU09OOmZ1bmN0aW9uKCl7cmV0dXJue2lkOnR9fX0pfSxuLnByb3RvdHlwZS5hdHRhY2hEZXY9ZnVuY3Rpb24oKXt2YXIgdD1HdCgpO2lmKHRoaXMub3B0aW9ucy5kZXZUb29scyYmdCl7aWYodC5fX1JFRFVYX0RFVlRPT0xTX0VYVEVOU0lPTl9fKXt2YXIgbj1cIm9iamVjdFwiPT10eXBlb2YgdGhpcy5vcHRpb25zLmRldlRvb2xzP3RoaXMub3B0aW9ucy5kZXZUb29sczp2b2lkIDA7dGhpcy5kZXZUb29scz10Ll9fUkVEVVhfREVWVE9PTFNfRVhURU5TSU9OX18uY29ubmVjdChlKGUoe25hbWU6dGhpcy5pZCxhdXRvUGF1c2U6ITAsc3RhdGVTYW5pdGl6ZXI6ZnVuY3Rpb24odCl7cmV0dXJue3ZhbHVlOnQudmFsdWUsY29udGV4dDp0LmNvbnRleHQsYWN0aW9uczp0LmFjdGlvbnN9fX0sbikse2ZlYXR1cmVzOmUoe2p1bXA6ITEsc2tpcDohMX0sbj9uLmZlYXR1cmVzOnZvaWQgMCl9KSx0aGlzLm1hY2hpbmUpLHRoaXMuZGV2VG9vbHMuaW5pdCh0aGlzLnN0YXRlKX1LdCh0aGlzKX19LG4ucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybntpZDp0aGlzLmlkfX0sbi5wcm90b3R5cGVbUF09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sbi5wcm90b3R5cGUuZ2V0U25hcHNob3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zdGF0dXM9PT10LkludGVycHJldGVyU3RhdHVzLk5vdFN0YXJ0ZWQ/dGhpcy5pbml0aWFsU3RhdGU6dGhpcy5fc3RhdGV9LG4uZGVmYXVsdE9wdGlvbnM9ZnVuY3Rpb24odCl7cmV0dXJue2V4ZWN1dGU6ITAsZGVmZXJFdmVudHM6ITAsY2xvY2s6e3NldFRpbWVvdXQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gc2V0VGltZW91dCh0LGUpfSxjbGVhclRpbWVvdXQ6ZnVuY3Rpb24odCl7cmV0dXJuIGNsZWFyVGltZW91dCh0KX19LGxvZ2dlcjp0LmNvbnNvbGUubG9nLmJpbmQoY29uc29sZSksZGV2VG9vbHM6ITF9fShcInVuZGVmaW5lZFwiIT10eXBlb2Ygc2VsZj9zZWxmOmdsb2JhbCksbi5pbnRlcnByZXQ9dGUsbn0oKTtmdW5jdGlvbiB0ZSh0LGUpe3JldHVybiBuZXcgWnQodCxlKX12YXIgZWU9e3JhaXNlOnZ0LHNlbmQ6eXQsc2VuZFBhcmVudDpndCxzZW5kVXBkYXRlOm10LGxvZzpmdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT10JiYodD1TdCkse3R5cGU6bnQsbGFiZWw6ZSxleHByOnR9fSxjYW5jZWw6eHQsc3RhcnQ6d3Qsc3RvcDpidCxhc3NpZ246X3QsYWZ0ZXI6RXQsZG9uZTpUdCxyZXNwb25kOmZ1bmN0aW9uKHQsbil7cmV0dXJuIHl0KHQsZShlKHt9LG4pLHt0bzpmdW5jdGlvbih0LGUsbil7cmV0dXJuIG4uX2V2ZW50Lm9yaWdpbn19KSl9LGZvcndhcmRUbzpPdCxlc2NhbGF0ZTpmdW5jdGlvbihuLHIpe3JldHVybiBndCgoZnVuY3Rpb24odCxlLHIpe3JldHVybnt0eXBlOmF0LGRhdGE6TihuKT9uKHQsZSxyKTpufX0pLGUoZSh7fSxyKSx7dG86dC5TcGVjaWFsVGFyZ2V0cy5QYXJlbnR9KSl9LGNob29zZTpmdW5jdGlvbihlKXtyZXR1cm57dHlwZTp0LkFjdGlvblR5cGVzLkNob29zZSxjb25kczplfX0scHVyZTpmdW5jdGlvbihlKXtyZXR1cm57dHlwZTp0LkFjdGlvblR5cGVzLlB1cmUsZ2V0OmV9fX07dC5JbnRlcnByZXRlcj1adCx0Lk1hY2hpbmU9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB2b2lkIDA9PT1uJiYobj10LmNvbnRleHQpLG5ldyB6dCh0LGUsbil9LHQuU3RhdGU9a3QsdC5TdGF0ZU5vZGU9enQsdC5hY3Rpb25zPWVlLHQuYXNzaWduPV90LHQuY3JlYXRlTWFjaGluZT1mdW5jdGlvbih0LGUpe3JldHVybiBuZXcgenQodCxlKX0sdC5jcmVhdGVTY2hlbWE9ZnVuY3Rpb24odCl7cmV0dXJuIHR9LHQuZG9uZUludm9rZT1OdCx0LmZvcndhcmRUbz1PdCx0LmludGVycHJldD10ZSx0Lm1hcFN0YXRlPWZ1bmN0aW9uKHQsZSl7dmFyIG4saSxvO3RyeXtmb3IodmFyIGE9cihzKHQpKSx1PWEubmV4dCgpOyF1LmRvbmU7dT1hLm5leHQoKSl7dmFyIGg9dS52YWx1ZTtjKGgsZSkmJighb3x8ZS5sZW5ndGg+by5sZW5ndGgpJiYobz1oKX19Y2F0Y2godCl7bj17ZXJyb3I6dH19ZmluYWxseXt0cnl7dSYmIXUuZG9uZSYmKGk9YS5yZXR1cm4pJiZpLmNhbGwoYSl9ZmluYWxseXtpZihuKXRocm93IG4uZXJyb3J9fXJldHVybiB0W29dfSx0Lm1hdGNoU3RhdGU9ZnVuY3Rpb24odCxlLG4pe3ZhciBvLGEscz1rdC5mcm9tKHQsdCBpbnN0YW5jZW9mIGt0P3QuY29udGV4dDp2b2lkIDApO3RyeXtmb3IodmFyIGM9cihlKSx1PWMubmV4dCgpOyF1LmRvbmU7dT1jLm5leHQoKSl7dmFyIGg9aSh1LnZhbHVlLDIpLGY9aFswXSxsPWhbMV07aWYocy5tYXRjaGVzKGYpKXJldHVybiBsKHMpfX1jYXRjaCh0KXtvPXtlcnJvcjp0fX1maW5hbGx5e3RyeXt1JiYhdS5kb25lJiYoYT1jLnJldHVybikmJmEuY2FsbChjKX1maW5hbGx5e2lmKG8pdGhyb3cgby5lcnJvcn19cmV0dXJuIG4ocyl9LHQubWF0Y2hlc1N0YXRlPWMsdC5zZW5kPXl0LHQuc2VuZFBhcmVudD1ndCx0LnNlbmRVcGRhdGU9bXQsdC5zcGF3bj1mdW5jdGlvbih0LG4pe3ZhciByPWZ1bmN0aW9uKHQpe3JldHVybiBBKHQpP2UoZSh7fSxZdCkse25hbWU6dH0pOmUoZShlKHt9LFl0KSx7bmFtZTpDKCl9KSx0KX0obik7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBlP2Uuc3Bhd24odCxyLm5hbWUscik6VnQodCxyLm5hbWUpfShJdFtJdC5sZW5ndGgtMV0pfSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KX0pKTtcbiJdfQ== +//------QC-SOURCE-SPLIT------ - try { - for (var o = r(t), a = o.next(); !a.done; a = o.next()) { - var s = a.value; - i.has(s) || i.set(s, []), s.parent && (i.has(s.parent) || i.set(s.parent, []), i.get(s.parent).push(s)); - } - } catch (t) { - e = { - error: t - }; - } finally { - try { - a && !a.done && (n = o["return"]) && n.call(o); - } finally { - if (e) throw e.error; - } - } + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/OP15/scene/OP15.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, 'ddbf4iIJnhHIImfp+SKRF1C', 'OP15'); +// OP15/scene/OP15.js - return i; - } +"use strict"; - function $(t, e) { - return function t(e, n) { - var r = n.get(e); - if (!r) return {}; +var _util = require("../script/util"); - if ("compound" === e.type) { - var i = r[0]; - if (!i) return {}; - if (F(i)) return i.key; - } +var _defaultData = require("../script/defaultData"); - var o = {}; - return r.forEach(function (e) { - o[e.key] = t(e, n); - }), o; - }(t, q(J([t], e))); - } +var _xstate = require("../script/xstate"); - function X(t, e) { - return Array.isArray(t) ? t.some(function (t) { - return t === e; - }) : t instanceof Set && t.has(e); - } +function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } it = o[Symbol.iterator](); return it.next.bind(it); } - function H(t, e) { - return "compound" === e.type ? U(e).some(function (e) { - return "final" === e.type && X(t, e); - }) : "parallel" === e.type && U(e).every(function (e) { - return H(t, e); - }); - } +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } - function G(t) { - return new Set(g(t.map(function (t) { - return t.tags; - }))); - } +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } - var K = t.ActionTypes.Start, - Q = t.ActionTypes.Stop, - W = t.ActionTypes.Raise, - Y = t.ActionTypes.Send, - Z = t.ActionTypes.Cancel, - tt = t.ActionTypes.NullEvent, - et = t.ActionTypes.Assign, - nt = (t.ActionTypes.After, t.ActionTypes.DoneState, t.ActionTypes.Log), - rt = t.ActionTypes.Init, - it = t.ActionTypes.Invoke, - ot = (t.ActionTypes.ErrorExecution, t.ActionTypes.ErrorPlatform), - at = t.ActionTypes.ErrorCustom, - st = t.ActionTypes.Update, - ct = t.ActionTypes.Choose, - ut = t.ActionTypes.Pure, - ht = L({ - type: rt - }); +function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } - function ft(t, e) { - return e && e[t] || void 0; - } +var pure = _xstate.actions.pure, + send = _xstate.actions.send, + raise = _xstate.actions.raise, + sendParent = _xstate.actions.sendParent; +cc.Class({ + "extends": cc.Component, + properties: { + /*ant: { + default: null, + type: cc.Node, + }, + apple: { + default: null, + type: cc.Node, + }, + bird: { + default: null, + type: cc.Node, + }, + car: { + default: null, + type: cc.Node, + }, + cat: { + default: null, + type: cc.Node, + }, + cow: { + default: null, + type: cc.Node, + }, + duck: { + default: null, + type: cc.Node, + }, + egg: { + default: null, + type: cc.Node, + }, + farmer: { + default: null, + type: cc.Node, + }, + fish: { + default: null, + type: cc.Node, + }, + girl: { + default: null, + type: cc.Node, + }, + hen: { + default: null, + type: cc.Node, + }, + house: { + default: null, + type: cc.Node, + },*/ + rightAudio: { + "default": null, + type: cc.AudioClip + }, + wrongAudio: { + "default": null, + type: cc.AudioClip + }, + logoCat: { + "default": null, + type: cc.Node + } + }, + playAni: function playAni(idx, name, options) { + var times = options && options.times || 1; + var cb = options && options.callback || null; // const cat = cc.find(`Canvas/frame-border/ground/${node}`); - function lt(t, n) { - var r; - if (A(t) || "number" == typeof t) r = N(i = ft(t, n)) ? { - type: t, - exec: i - } : i || { - type: t, - exec: void 0 - };else if (N(t)) r = { - type: t.name || t.toString(), - exec: t - };else { - var i; - if (N(i = ft(t.type, n))) r = _e(_e({}, t), { - exec: i - });else if (i) { - var o = i.type || t.type; - r = _e(_e(_e({}, i), t), { - type: o - }); - } else r = t; - } - return r; - } + var node = this._figurePointRectArray[idx].node; + var dragonDisplay = node.getComponent(dragonBones.ArmatureDisplay); + var state = dragonDisplay.playAnimation(name, times); // dragonDisplay.addEventListener(dragonBones.EventObject.COMPLETE, (event) => { + // //TODO 这里写触å‘事件 + // //event.name为事件åç§° + // console.log(event.name) + // }, this); + // animationDisplay.addEventListener(dragonBones.EventObject.COMPLETE, completeCallback); - var dt = function dt(t, e) { - return t ? (T(t) ? t : [t]).map(function (t) { - return lt(t, e); - }) : []; - }; + return state; + }, + // 生命周期 onLoad + onLoad: function onLoad() { + this._timeoutIds = []; + this._intervalIds = []; + this.initSceneData(); + this.initSize(); + window.ccc = this; + }, + _imageResList: null, + _audioResList: null, + _animaResList: null, + _lastFingerPosition: null, + _hintsNodeList: null, + _figurePointRectArray: null, + _allAnimationNodes: null, + initSceneData: function initSceneData() { + this._imageResList = []; + this._audioResList = []; + this._animaResList = []; + this._allAnimationNodes = []; + this._hintsNodeList = []; + this._lastFingerPosition = { + pos: null, + dirty: false + }; + this._figurePointRectArray = []; + }, + _designSize: null, + // 设计分辨率 + _frameSize: null, + // å±å¹•分辨率 + _mapScaleMin: null, + // 场景ä¸å¸¸ç”¨ç¼©æ”¾ï¼ˆå–大值) + _mapScaleMax: null, + // 场景ä¸å¸¸ç”¨ç¼©æ”¾ï¼ˆå–å°å€¼ï¼‰ + _cocosScale: null, + // cocos 自缩放 (较少用到) + initSize: function initSize() { + // 注æ„cc.winSizeåªæœ‰åœ¨é€‚é…åŽ(修改fitHeight/fitWidthåŽ)æ‰èƒ½èŽ·å–到æ£ç¡®çš„值,å› æ¤ä½¿ç”¨cc.getFrameSize()æ¥èŽ·å–åˆå§‹çš„å±å¹•å¤§å° + var screen_size = cc.view.getFrameSize().width / cc.view.getFrameSize().height; + var design_size = cc.Canvas.instance.designResolution.width / cc.Canvas.instance.designResolution.height; + var f = screen_size >= design_size; + cc.Canvas.instance.fitHeight = f; + cc.Canvas.instance.fitWidth = !f; + var frameSize = cc.view.getFrameSize(); + this._frameSize = frameSize; + this._designSize = cc.view.getDesignResolutionSize(); + var sx = cc.winSize.width / frameSize.width; + var sy = cc.winSize.height / frameSize.height; + this._cocosScale = Math.min(sx, sy); + sx = frameSize.width / this._designSize.width; + sy = frameSize.height / this._designSize.height; + this._mapScaleMin = Math.min(sx, sy) * this._cocosScale; + this._mapScaleMax = Math.max(sx, sy) * this._cocosScale; + }, + createStateMachine: function createStateMachine() { + var _this = this; - function pt(t) { - var n = lt(t); - return _e(_e({ - id: A(t) ? t : n.id - }, n), { - type: n.type - }); - } + var check = [{ + target: '#game.end', + cond: function cond(ctx, evt) { + console.log('[answer NEXT] check if end', ctx.questionIndex >= ctx.questionsCount - 1); + return ctx.questionIndex >= ctx.questionsCount - 1; + } + }, { + target: 'hint' + } // reenter 'hint' state + ]; + var QuestionState = { + id: 'question', + initial: 'hint', + states: { + hint: { + invoke: { + src: function src(ctx, event) { + console.log("[hint] play question " + ctx.questionIndex + ": " + ctx.questionPlayTimes + " audio"); + ctx.questionPlayTimes += 1; + return new Promise(function (resolve, reject) { + (0, _util.playAudioByUrl)(ctx.questions[ctx.questionIndex].audio_url, function () { + console.log('hint finish'); + resolve(); + }); + }); + }, + onDone: 'answer', + onError: 'answer' + } + }, + answer: { + after: { + 8000: [{ + target: 'wrong' + } // reenter 'hint' state + ] + }, + invoke: { + src: function src(context, event) { + return function (callback, onReceive) { + console.log('[answer] thinking and playing'); // check every second - function vt(e) { - return A(e) ? { - type: W, - event: e - } : yt(e, { - to: t.SpecialTargets.Internal - }); - } + var id = setInterval(function () { + if (!_this._lastFingerPosition.dirty) { + return; + } - function yt(t, e) { - return { - to: e ? e.to : void 0, - type: Y, - event: N(t) ? t : V(t), - delay: e ? e.delay : void 0, - id: e && void 0 !== e.id ? e.id : N(t) ? t.name : u(t) - }; - } + var region = context.questions[context.questionIndex]; - function gt(n, r) { - return yt(n, _e(_e({}, r), { - to: t.SpecialTargets.Parent - })); - } + var result = _this.checkInRegion(region.rect); - function mt() { - return gt(st); - } + if (result === null) { + return; + } - var St = function St(t, e) { - return { - context: t, - event: e - }; - }; + console.log('[Genise JS] checkInRegion' + result); - var xt = function xt(t) { - return { - type: Z, - sendId: t - }; - }; + if (result) { + callback('RIGHT'); + } else { + callback('WRONG'); + } + }, 100); - function wt(e) { - var n = pt(e); - return { - type: t.ActionTypes.Start, - activity: n, - exec: void 0 - }; - } + _this._intervalIds.push(id); // Perform cleanup - function bt(e) { - var n = N(e) ? e : pt(e); - return { - type: t.ActionTypes.Stop, - activity: n, - exec: void 0 - }; - } - var _t = function _t(t) { - return { - type: et, - assignment: t - }; - }; + return function () { + return clearInterval(id); + }; + }; + } + }, + on: { + RIGHT: { + target: 'right' + }, + WRONG: { + target: 'wrong' + } + } + }, + right: { + invoke: { + src: function src(context, event) { + _this._lastFingerPosition.pos = null; + _this._lastFingerPosition.dirty = false; + return new Promise(function (resolve, reject) { + console.log('answer right'); // this.playAni(context.questionIndex, 'normal') - function Et(e, n) { - var r = n ? "#".concat(n) : ""; - return "".concat(t.ActionTypes.After, "(").concat(e, ")").concat(r); - } + var an = context.questions[context.questionIndex].node; + console.log('in right ' + typeof an); + an.active = true; - function Tt(e, n) { - var r = "".concat(t.ActionTypes.DoneState, ".").concat(e), - i = { - type: r, - data: n, - toString: function toString() { - return r; - } - }; - return i; - } + if (an.isSpine) { + var skeleton = an.getComponent(sp.Skeleton); + skeleton.setToSetupPose(); + setTimeout(function () { + skeleton.setAnimation(0, 'normal', true); + }, 1); + } else { + var dragonDisplay = an.getComponent(dragonBones.ArmatureDisplay); + dragonDisplay.playAnimation('normal', 0); + } - function Nt(e, n) { - var r = "".concat(t.ActionTypes.DoneInvoke, ".").concat(e), - i = { - type: r, - data: n, - toString: function toString() { - return r; + var ddLogoCat = _this.logoCat.getComponent(dragonBones.ArmatureDisplay); + + ddLogoCat.playAnimation('right', 1); + ddLogoCat.once(dragonBones.EventObject.COMPLETE, function () { + this.logoCat.getComponent(dragonBones.ArmatureDisplay).playAnimation('normal', 0); + }, _this); + (0, _util.playAudioByUrl)(_this.rightAudio, function () { + resolve(); + }); + }); + }, + onDone: { + target: '#QuestionsArray.next', + actions: raise('CHECK') + }, + onError: { + target: '#QuestionsArray.next', + actions: raise('CHECK') + } + } + }, + wrong: { + invoke: { + src: function src(context, event) { + _this._lastFingerPosition.pos = null; + _this._lastFingerPosition.dirty = false; + return new Promise(function (resolve, reject) { + console.log('answer wrong', context.questionIndex, context.questionPlayTimes, context.maxQuestionTryTimes); + + var ddLogoCat = _this.logoCat.getComponent(dragonBones.ArmatureDisplay); + + ddLogoCat.playAnimation('wrong', 1); + ddLogoCat.once(dragonBones.EventObject.COMPLETE, function () { + this.logoCat.getComponent(dragonBones.ArmatureDisplay).playAnimation('normal', 0); + }, _this); + var wrongEffect = _this.wrongAudio; // 第一和第二题的æç¤ºéŸ³ + + if ([0, 1].includes(context.questionIndex)) { + wrongEffect = _this.data["wrong_audio" + context.questionPlayTimes]; + } else { + // éžç¬¬ä¸€å’Œç¬¬äºŒé¢˜ï¼Œå¹¶ä¸”åšç¬¬äºŒéçš„æç¤ºéŸ³ + if (context.questionPlayTimes == 2) { + wrongEffect = _this.data["wrong_audio" + context.questionPlayTimes]; + } + } + + if (context.questionPlayTimes >= context.maxQuestionTryTimes) { + var an = context.questions[context.questionIndex].node; + an.active = true; + + if (an.isSpine) { + var skeleton = an.getComponent(sp.Skeleton); + skeleton.setToSetupPose(); + setTimeout(function () { + skeleton.setAnimation(0, 'normal', true); + }, 1); + } else { + var dragonDisplay = an.getComponent(dragonBones.ArmatureDisplay); + dragonDisplay.playAnimation('normal', 0); + console.log('show animation', an.active); + } + } + + (0, _util.playAudioByUrl)(wrongEffect, function () { + if (context.questionPlayTimes >= context.maxQuestionTryTimes) { + // const an = context.questions[context.questionIndex].node; + // an.active = true; + // const dragonDisplay = an.getComponent(dragonBones.ArmatureDisplay); + // dragonDisplay.playAnimation('normal', 0); + // console.log('show animation', an.active); + reject(); + } else { + resolve(); + } + }); + }); + }, + onDone: { + target: 'hint' // actions: raise('CHECK') + + }, + onError: { + target: '#QuestionsArray.next', + actions: raise('CHECK') + } + } + } } }; - return i; - } - - function At(e, n) { - var r = "".concat(t.ActionTypes.ErrorPlatform, ".").concat(e), - i = { - type: r, - data: n, - toString: function toString() { - return r; + var QuestionsArrayStatus = { + id: 'QuestionsArray', + initial: 'play', + states: { + play: _extends({}, QuestionState), + next: { + on: { + CHECK: [{ + target: '#game.end', + cond: function cond(ctx, evt) { + ctx.questionIndex += 1; + ctx.questionPlayTimes = 0; + console.log('#game.end', ctx.questionIndex >= ctx.questionsCount); + return ctx.questionIndex >= ctx.questionsCount; + } + }, { + target: 'play' + }] + } + } } }; - return i; - } - - function Ot(t, n) { - return yt(function (t, e) { - return e; - }, _e(_e({}, n), { - to: t - })); - } + var state = { + id: 'game', + initial: 'begin', + context: { + questionIndex: 0, + questionPlayTimes: 0, + maxQuestionTryTimes: 2, + questionsCount: this._figurePointRectArray.length, + questions: this._figurePointRectArray + }, + states: { + begin: { + invoke: { + src: function src(ctx) { + console.log('game begin 1'); - function Pt(n, r, a, s, c, u) { - void 0 === u && (u = !1); - var h = i(u ? [[], c] : b(c, function (t) { - return t.type === et; - }), 2), - f = h[0], - l = h[1], - d = f.length ? E(a, s, f, r) : a, - p = u ? [a] : void 0; - return [g(l.map(function (a) { - var c; + if (window.courseware && window.courseware.openOsmoFingerRead) { + _this.isOpenedOsmoFingerRead = true; + window.courseware.openOsmoFingerRead({ + "page_id": 27, + "book_id": "opw1" + }); + } - switch (a.type) { - case W: - return { - type: W, - _event: L(a.event) - }; + var dragonDisplay = _this.logoCat.getComponent(dragonBones.ArmatureDisplay); - case Y: - return function (t, n, r, i) { - var o, - a = { - _event: r + var state = dragonDisplay.playAnimation('begin', 0); + return new Promise(function (resolve, reject) { + (0, _util.playAudioByUrl)(_this.data.begin_audio, function () { + console.log('game begin audio finish'); + resolve(); + }); + }); }, - s = L(N(t.event) ? t.event(n, r.data, a) : t.event); + onDone: 'guide', + onError: 'guide' + } + }, + guide: { + invoke: { + src: function src(ctx) { + return new Promise(function (resolve, reject) { + (0, _util.playAudioByUrl)(_this.data.guide_audio, function () { + console.log('game guide audio finish'); + reject(); + }); + }); + }, + onDone: 'playing', + onError: 'playing' + } + }, + playing: _extends({ + entry: function entry(ctx) { + console.log('entry play stage'); - if (A(t.delay)) { - var c = i && i[t.delay]; - o = N(c) ? c(n, r.data, a) : c; - } else o = N(t.delay) ? t.delay(n, r.data, a) : t.delay; + var dragonDisplay = _this.logoCat.getComponent(dragonBones.ArmatureDisplay); - var u = N(t.to) ? t.to(n, r.data, a) : t.to; - return _e(_e({}, t), { - to: u, - _event: s, - event: s.data, - delay: o + var state = dragonDisplay.playAnimation('normal', 0); + cc.assetManager.loadRemote(_this.data.playing_audio, function (err, audioClip) { + cc.audioEngine.playMusic(audioClip, true, 0.8); }); - }(a, d, s, n.options.delays); - - case nt: - return function (t, n, r) { - return _e(_e({}, t), { - value: A(t.expr) ? t.expr : t.expr(n, r.data, { - _event: r - }) + ctx.questions.forEach(function (block) { + block.node.active = false; }); - }(a, d, s); + }, + exit: function exit() { + console.log('exit play stage'); + cc.audioEngine.stopMusic(); + }, + on: { + NEXT: 'end' + } + }, QuestionsArrayStatus), + end: { + entry: function entry(ctx, event) { + console.log('game end'); - case ct: - if (!(v = null === (c = a.conds.find(function (t) { - var e = O(t.cond, n.options.guards); - return !e || R(n, e, d, s, r); - })) || void 0 === c ? void 0 : c.actions)) return []; - var h = i(Pt(n, r, d, s, dt(S(v), n.options.actions), u), 2), - f = h[0], - l = h[1]; - return d = l, null == p || p.push(d), f; + var dragonDisplay = _this.logoCat.getComponent(dragonBones.ArmatureDisplay); - case ut: - var v; - if (!(v = a.get(d, s.data))) return []; - var y = i(Pt(n, r, d, s, dt(S(v), n.options.actions), u), 2), - g = y[0], - m = y[1]; - return d = m, null == p || p.push(d), g; - - case Q: - return function (e, n, r) { - var i = N(e.activity) ? e.activity(n, r.data) : e.activity, - o = "string" == typeof i ? { - id: i - } : i; - return { - type: t.ActionTypes.Stop, - activity: o - }; - }(a, d, s); - - case et: - d = E(d, s, [a], r), null == p || p.push(d); - break; - - default: - var x = lt(a, n.options.actions), - w = x.exec; + var state = dragonDisplay.playAnimation('finish', 0); - if (w && p) { - var b = p.length - 1; - x = _e(_e({}, x), { - exec: function exec(t) { - for (var e = [], n = 1; n < arguments.length; n++) { - e[n - 1] = arguments[n]; - } + if (window.courseware && window.courseware.closeOsmoFingerRead) { + _this.isOpenedOsmoFingerRead = false; + window.courseware.closeOsmoFingerRead(); + } - w.apply(void 0, o([p[b]], i(e), !1)); - } - }); + (0, _util.playAudioByUrl)(_this.data.end_audio, function () { + console.log('game finish'); + (0, _util.onHomeworkFinish)(); + }); // return new Promise((resolve,reject) => { + // setTimeout(() => { + // console.log('hint finish'); + // resolve() + // }, 2000) + // }) } - - return x; - } - }).filter(function (t) { - return !!t; - })), d]; - } - - var kt = function () { - function t(t) { - var e, - n, - r = this; - this.actions = [], this.activities = a, this.meta = {}, this.events = [], this.value = t.value, this.context = t.context, this._event = t._event, this._sessionid = t._sessionid, this.event = this._event.data, this.historyValue = t.historyValue, this.history = t.history, this.actions = t.actions || [], this.activities = t.activities || a, this.meta = (void 0 === (n = t.configuration) && (n = []), n.reduce(function (t, e) { - return void 0 !== e.meta && (t[e.id] = e.meta), t; - }, {})), this.events = t.events || [], this.matches = this.matches.bind(this), this.toStrings = this.toStrings.bind(this), this.configuration = t.configuration, this.transitions = t.transitions, this.children = t.children, this.done = !!t.done, this.tags = null !== (e = Array.isArray(t.tags) ? new Set(t.tags) : t.tags) && void 0 !== e ? e : new Set(), this.machine = t.machine, Object.defineProperty(this, "nextEvents", { - get: function get() { - return function (t) { - return o([], i(new Set(g(o([], i(t.map(function (t) { - return t.ownEvents; - })), !1)))), !1); - }(r.configuration); } - }); - } - - return t.from = function (e, n) { - return e instanceof t ? e.context !== n ? new t({ - value: e.value, - context: n, - _event: e._event, - _sessionid: null, - historyValue: e.historyValue, - history: e.history, - actions: [], - activities: e.activities, - meta: {}, - events: [], - configuration: [], - transitions: [], - children: {} - }) : e : new t({ - value: e, - context: n, - _event: ht, - _sessionid: null, - historyValue: void 0, - history: void 0, - actions: [], - activities: void 0, - meta: void 0, - events: [], - configuration: [], - transitions: [], - children: {} - }); - }, t.create = function (e) { - return new t(e); - }, t.inert = function (e, n) { - if (e instanceof t) { - if (!e.actions.length) return e; - var r = ht; - return new t({ - value: e.value, - context: n, - _event: r, - _sessionid: null, - historyValue: e.historyValue, - history: e.history, - activities: e.activities, - configuration: e.configuration, - transitions: [], - children: {} - }); } + }; + var after = {}; - return t.from(e, n); - }, t.prototype.toStrings = function (t, e) { - var n = this; - if (void 0 === t && (t = this.value), void 0 === e && (e = "."), A(t)) return [t]; - var r = s(t); - return r.concat.apply(r, o([], i(r.map(function (r) { - return n.toStrings(t[r], e).map(function (t) { - return r + e + t; - }); - })), !1)); - }, t.prototype.toJSON = function () { - var t = this, - r = (t.configuration, t.transitions, t.tags), - i = (t.machine, n(t, ["configuration", "transitions", "tags", "machine"])); - return _e(_e({}, i), { - tags: Array.from(r) - }); - }, t.prototype.matches = function (t) { - return c(t, this.value); - }, t.prototype.hasTag = function (t) { - return this.tags.has(t); - }, t.prototype.can = function (t) { - var e; - return this.machine, !!(null === (e = this.machine) || void 0 === e ? void 0 : e.transition(this, t).changed); - }, t; - }(), - It = [], - jt = function jt(t, e) { - It.push(t); - var n = e(t); - return It.pop(), n; - }; + var _loop = function _loop(i) { + var t = _this._hintsNodeList[i].node; + var k = _this._hintsNodeList[i].after; + after[k] = { + actions: function actions() { + if (t.isSpine) { + var skeleton = t.getComponent(sp.Skeleton); + skeleton.setToSetupPose(); + setTimeout(function () { + skeleton.setAnimation(0, 'enlarge', false); + }, 1); // skeleton.animation = skeleton.animationNames[0]; + } else { + var dragonDisplay = t.getComponent(dragonBones.ArmatureDisplay); + dragonDisplay.playAnimation('enlarge', 1); + console.log(dragonDisplay._armatureKey, 'enlarge'); + dragonDisplay.addEventListener(dragonBones.EventObject.COMPLETE, function (event) {// TODO 这里写触å‘事件 + // event.name为事件åç§° + // event.armature.animation.play('normal', 0); + // console.log(event.animationState.name, dragonDisplay._armatureKey, 'end') + }, _this); + } // const dragonDisplay = t.getComponent(dragonBones.ArmatureDisplay); + // dragonDisplay.playAnimation('enlarge', 1); + // console.log(dragonDisplay._armatureKey, 'enlarge') + // dragonDisplay.addEventListener(dragonBones.EventObject.COMPLETE, (event) => { + // //TODO 这里写触å‘事件 + // //event.name为事件åç§° + // event.armature.animation.play('normal', 0); + // console.log(event.animationState.name, dragonDisplay._armatureKey, 'end') + // }, this); - function Ct(t) { - return { - id: t, - send: function send() {}, - subscribe: function subscribe() { - return { - unsubscribe: function unsubscribe() {} - }; - }, - getSnapshot: function getSnapshot() {}, - toJSON: function toJSON() { - return { - id: t - }; - } + } + }; }; - } - function Vt(t, e, n) { - var r = Ct(e); + for (var i = 0; i < this._hintsNodeList.length; i++) { + _loop(i); + } - if (r.deferred = !0, k(t)) { - var i = r.state = jt(void 0, function () { - return (n ? t.withContext(n) : t).initialState; - }); + if (this.data.begin_sep_time) { + var t = +this.data.begin_sep_time * 1000; + after[t] = { + actions: function actions() { + console.log('game begin 2'); - r.getSnapshot = function () { - return i; - }; - } + for (var _i = 0; _i < _this._allAnimationNodes.length; _i++) { + var _t = _this._allAnimationNodes[_i]; - return r; - } + if (_t.isSpine) { + (function () { + var skeleton = _t.getComponent(sp.Skeleton); - function Lt(t) { - if ("string" == typeof t) { - var e = { - type: t, - toString: function toString() { - return t; + console.log('skeleton: ', skeleton); + skeleton.setToSetupPose(); + setTimeout(function () { + skeleton.setAnimation(0, 'normal', true); + }, 1); + console.log('skeleton 22: ', skeleton); // skeleton.animation = skeleton.animationNames[0]; + })(); + } else { + var dragonDisplay = _t.getComponent(dragonBones.ArmatureDisplay); + + dragonDisplay.playAnimation('normal', 0); + } + } } }; - return e; } - return t; - } + state.states.begin.after = after; + var gameMachine = (0, _xstate.createMachine)(state); + window.gameMachine = gameMachine; + this.gameMachineService = (0, _xstate.interpret)(gameMachine).onTransition(function (state) {// console.log(1, state.value, state.context); + }); + this.gameMachineService.start(); - function Dt(t) { - return _e(_e({ - type: it - }, t), { - toJSON: function toJSON() { - t.onDone, t.onError; - var r = n(t, ["onDone", "onError"]); - return _e(_e({}, r), { - type: it, - src: Lt(t.src) - }); - } + if (window.gameMachineService) { + window.gameMachineService = gameMachineService; + } + }, + // 生命周期 start + start: function start() { + var _this2 = this; + + var getData = this.getData.bind(this); + + if (window && window.courseware) { + getData = window.courseware.getData; + } + + getData(function (data) { + // console.log('data:', data); + _this2.data = data || _this2.getDefaultData(); + _this2.data = JSON.parse(JSON.stringify(_this2.data)); + + _this2.preloadItem(); }); - } + window.air = window.air || {}; - var Rt = {}, - Mt = function Mt(t) { - return "#" === t[0]; - }, - zt = function () { - function a(t, n, c) { - var u, - h = this; - void 0 === c && (c = "context" in t ? t.context : void 0), this.config = t, this._context = c, this.order = -1, this.__xstatenode = !0, this.__cache = { - events: void 0, - relativeValue: new Map(), - initialStateValue: void 0, - initialState: void 0, - on: void 0, - transitions: void 0, - candidates: {}, - delayedTransitions: void 0 - }, this.idMap = {}, this.tags = [], this.options = Object.assign({ - actions: {}, - guards: {}, - services: {}, - activities: {}, - delays: {} - }, n), this.parent = this.options._parent, this.key = this.config.key || this.options._key || this.config.id || "(machine)", this.machine = this.parent ? this.parent.machine : this, this.path = this.parent ? this.parent.path.concat(this.key) : [], this.delimiter = this.config.delimiter || (this.parent ? this.parent.delimiter : "."), this.id = this.config.id || o([this.machine.key], i(this.path), !1).join(this.delimiter), this.version = this.parent ? this.parent.version : this.config.version, this.type = this.config.type || (this.config.parallel ? "parallel" : this.config.states && s(this.config.states).length ? "compound" : this.config.history ? "history" : "atomic"), this.schema = this.parent ? this.machine.schema : null !== (u = this.config.schema) && void 0 !== u ? u : {}, this.description = this.config.description, this.initial = this.config.initial, this.states = this.config.states ? d(this.config.states, function (t, n) { - var r, - i = new a(t, { - _parent: h, - _key: n - }); - return Object.assign(h.idMap, _e(((r = {})[i.id] = i, r), i.idMap)), i; - }) : Rt; - var f = 0; - !function t(e) { - var n, i; - e.order = f++; + if (window.air) { + window.air.osmoFingerReadCallback = function (result) { + if (!_this2.gameMachineService) { + return; + } // const st = this.gameMachineService.state.value.constructor.name == 'Object' + // && this.gameMachineService.state.value['playing'] + // && this.gameMachineService.state.value['playing'].constructor.name == 'Object' + // && this.gameMachineService.state.value['playing']['play'] + // && this.gameMachineService.state.value['playing']['play'] == 'answer' + // if (st) { + // } - try { - for (var o = r(U(e)), a = o.next(); !a.done; a = o.next()) { - t(a.value); - } - } catch (t) { - n = { - error: t - }; - } finally { - try { - a && !a.done && (i = o["return"]) && i.call(o); - } finally { - if (n) throw n.error; - } - } - }(this), this.history = !0 === this.config.history ? "shallow" : this.config.history || !1, this._transient = !!this.config.always || !!this.config.on && (Array.isArray(this.config.on) ? this.config.on.some(function (t) { - return "" === t.event; - }) : "" in this.config.on), this.strict = !!this.config.strict, this.onEntry = S(this.config.entry || this.config.onEntry).map(function (t) { - return lt(t); - }), this.onExit = S(this.config.exit || this.config.onExit).map(function (t) { - return lt(t); - }), this.meta = this.config.meta, this.doneData = "final" === this.type ? this.config.data : void 0, this.invoke = S(this.config.invoke).map(function (t, n) { - var r, i; - if (k(t)) return h.machine.options.services = _e(((r = {})[t.id] = t, r), h.machine.options.services), Dt({ - src: t.id, - id: t.id - }); - if (A(t.src)) return Dt(_e(_e({}, t), { - id: t.id || t.src, - src: t.src - })); - if (k(t.src) || N(t.src)) { - var o = "".concat(h.id, ":invocation[").concat(n, "]"); - return h.machine.options.services = _e(((i = {})[o] = t.src, i), h.machine.options.services), Dt(_e(_e({ - id: o - }, t), { - src: o - })); - } + var resultObj = JSON.parse(result); + console.log('[Genise JS] ' + JSON.stringify(resultObj.finger_pos_in_page)); + var p = resultObj.finger_pos_in_page; - var a = t.src; - return Dt(_e(_e({ - id: a.type - }, t), { - src: a - })); - }), this.activities = S(this.config.activities).concat(this.invoke).map(function (t) { - return pt(t); - }), this.transition = this.transition.bind(this), this.tags = S(this.config.tags); - } + if (p.x == -1 || p.y == -1) { + _this2._lastFingerPosition.pos = null; + _this2._lastFingerPosition.dirty = false; + return; + } - return a.prototype._init = function () { - this.__cache.transitions || B(this).forEach(function (t) { - return t.on; - }); - }, a.prototype.withConfig = function (t, n) { - var r = this.options, - i = r.actions, - o = r.activities, - s = r.guards, - c = r.services, - u = r.delays; - return new a(this.config, { - actions: _e(_e({}, i), t.actions), - activities: _e(_e({}, o), t.activities), - guards: _e(_e({}, s), t.guards), - services: _e(_e({}, c), t.services), - delays: _e(_e({}, u), t.delays) - }, null != n ? n : this.context); - }, a.prototype.withContext = function (t) { - return new a(this.config, this.options, t); - }, Object.defineProperty(a.prototype, "context", { - get: function get() { - return N(this._context) ? this._context() : this._context; - }, - enumerable: !1, - configurable: !0 - }), Object.defineProperty(a.prototype, "definition", { - get: function get() { - return { - id: this.id, - key: this.key, - version: this.version, - context: this.context, - type: this.type, - initial: this.initial, - history: this.history, - states: d(this.states, function (t) { - return t.definition; - }), - on: this.on, - transitions: this.transitions, - entry: this.onEntry, - exit: this.onExit, - activities: this.activities || [], - meta: this.meta, - order: this.order || -1, - data: this.doneData, - invoke: this.invoke, - description: this.description, - tags: this.tags + _this2._lastFingerPosition = { + pos: { + x: p.x, + y: p.y + }, + dirty: true }; - }, - enumerable: !1, - configurable: !0 - }), a.prototype.toJSON = function () { - return this.definition; - }, Object.defineProperty(a.prototype, "on", { - get: function get() { - if (this.__cache.on) return this.__cache.on; - var t = this.transitions; - return this.__cache.on = t.reduce(function (t, e) { - return t[e.eventType] = t[e.eventType] || [], t[e.eventType].push(e), t; - }, {}); - }, - enumerable: !1, - configurable: !0 - }), Object.defineProperty(a.prototype, "after", { - get: function get() { - return this.__cache.delayedTransitions || (this.__cache.delayedTransitions = this.getDelayedTransitions(), this.__cache.delayedTransitions); - }, - enumerable: !1, - configurable: !0 - }), Object.defineProperty(a.prototype, "transitions", { - get: function get() { - return this.__cache.transitions || (this.__cache.transitions = this.formatTransitions(), this.__cache.transitions); - }, - enumerable: !1, - configurable: !0 - }), a.prototype.getCandidates = function (t) { - if (this.__cache.candidates[t]) return this.__cache.candidates[t]; - var e = "" === t, - n = this.transitions.filter(function (n) { - var r = n.eventType === t; - return e ? r : r || "*" === n.eventType; - }); - return this.__cache.candidates[t] = n, n; - }, a.prototype.getDelayedTransitions = function () { - var t = this, - n = this.config.after; - if (!n) return []; - var r = function r(e, n) { - var r = Et(N(e) ? "".concat(t.id, ":delay[").concat(n, "]") : e, t.id); - return t.onEntry.push(yt(r, { - delay: e - })), t.onExit.push(xt(r)), r; + _this2.debugPointer(p.x, p.y); }; + } - return (T(n) ? n.map(function (t, n) { - var i = r(t.delay, n); - return _e(_e({}, t), { - event: i - }); - }) : g(s(n).map(function (t, i) { - var o = n[t], - a = A(o) ? { - target: o - } : o, - s = isNaN(+t) ? t : +t, - c = r(s, i); - return S(a).map(function (t) { - return _e(_e({}, t), { - event: c, - delay: s - }); - }); - }))).map(function (n) { - var r = n.delay; - return _e(_e({}, t.formatTransition(n)), { - delay: r - }); - }); - }, a.prototype.getStateNodes = function (t) { - var e, - n = this; - if (!t) return []; - var r = t instanceof kt ? t.value : f(t, this.delimiter); - - if (A(r)) { - var i = this.getStateNode(r).initial; - return void 0 !== i ? this.getStateNodes(((e = {})[r] = i, e)) : [this, this.states[r]]; - } - - var o = s(r), - a = o.map(function (t) { - return n.getStateNode(t); - }); - return a.push(this), a.concat(o.reduce(function (t, e) { - var i = n.getStateNode(e).getStateNodes(r[e]); - return t.concat(i); - }, [])); - }, a.prototype.handles = function (t) { - var e = u(t); - return this.events.includes(e); - }, a.prototype.resolveState = function (t) { - var n = Array.from(J([], this.getStateNodes(t.value))); - return new kt(_e(_e({}, t), { - value: this.resolve(t.value), - configuration: n, - done: H(n, this), - tags: G(n) - })); - }, a.prototype.transitionLeafNode = function (t, e, n) { - var r = this.getStateNode(t).next(e, n); - return r && r.transitions.length ? r : this.next(e, n); - }, a.prototype.transitionCompoundNode = function (t, e, n) { - var r = s(t), - i = this.getStateNode(r[0])._transition(t[r[0]], e, n); + this.isDebug = false; + }, + checkInRegion: function checkInRegion(r) { + if (!this._lastFingerPosition && !this._lastFingerPosition.pos) { + return null; + } - return i && i.transitions.length ? i : this.next(e, n); - }, a.prototype.transitionParallelNode = function (t, e, n) { - var i, - o, - a = {}; + var p = this._lastFingerPosition ? this._lastFingerPosition.pos || { + x: 0, + y: 0 + } : { + x: 0, + y: 0 + }; + console.log('~p: ', p); + console.log('~r: ', r); + var w = p.x > r.x && p.x < r.x + r.width; + var h = p.y > r.y && p.y < r.y + r.height; + return w && h; + }, + getData: function getData(func) { + if (window && window.courseware) { + window.courseware.getData(func, 'scene'); + return; + } - try { - for (var c = r(s(t)), u = c.next(); !u.done; u = c.next()) { - var h = u.value, - f = t[h]; + var middleLayer = cc.find('middleLayer'); - if (f) { - var l = this.getStateNode(h)._transition(f, e, n); + if (middleLayer) { + var middleLayerComponent = middleLayer.getComponent('middleLayer'); + middleLayerComponent.getData(func); + return; + } - l && (a[h] = l); - } + func(this.getDefaultData()); + }, + getDefaultData: function getDefaultData() { + return { + "begin_audio": "https://teach.cdn.ireadabc.com/9be46c9adb540ed8a60763f1e657ccb7.mp3", + "begin_sep_time": 66, + "guide_audio": "https://teach.cdn.ireadabc.com/9523c8ed45faee686363dd157b0d7426.mp3", + "playing_audio": "https://teach.cdn.ireadabc.com/d6a953052a6f80549730cb4307c55719.mp3", + "right_audio": "https://teach.cdn.ireadabc.com/43791fc418e666df5e9ec1b7bf936409.mp3", + "wrong_audio": "https://teach.cdn.ireadabc.com/7dd85f025a132c2eef8daee38d900287.mp3", + "wrong_audio1": "https://teach.cdn.ireadabc.com/a76afb06af0799bf538e38f9f80a2261.mp3", + "wrong_audio2": "https://teach.cdn.ireadabc.com/daee88b6f2eadd78b60436eedffcae08.mp3", + "end_audio": "https://teach.cdn.ireadabc.com/9c1e87b3c184b06e14e44bb058b9804e.mp3", + "bgItem": { + "url": "https://teach.cdn.ireadabc.com/16b6dacd8e6c1ce6da16f500a66b366b.jpg", + "rect": { + "x": 319.68, + "y": 0, + "width": 257.64, + "height": 342 } - } catch (t) { - i = { - error: t - }; - } finally { - try { - u && !u.done && (o = c["return"]) && o.call(c); - } finally { - if (i) throw i.error; + }, + "hotZoneItemArr": [{ + "id": "1650544807877", + "index": 0, + "itemType": "pic", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 176.65207877461702 + }, + "gIdx": "1", + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/66c7c0847c33f7f95cb0035fe14c4405.json", + "name": "monkey_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/98a8272cd2d97047b090ff10e948b978.json", + "name": "monkey_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/c35ced408ad68a52c4ec5375373d3627.png", + "name": "monkey_tex.png" + }, + "rect": { + "x": 128.83, + "y": 171, + "width": 0, + "height": 0 } - } - - var d = s(a).map(function (t) { - return a[t]; - }), - p = g(d.map(function (t) { - return t.transitions; - })); - if (!d.some(function (t) { - return t.transitions.length > 0; - })) return this.next(e, n); - var v = g(d.map(function (t) { - return t.entrySet; - })), - y = g(s(a).map(function (t) { - return a[t].configuration; - })); - return { - transitions: p, - entrySet: v, - exitSet: g(d.map(function (t) { - return t.exitSet; - })), - configuration: y, - source: e, - actions: g(s(a).map(function (t) { - return a[t].actions; - })) - }; - }, a.prototype._transition = function (t, e, n) { - return A(t) ? this.transitionLeafNode(t, e, n) : 1 === s(t).length ? this.transitionCompoundNode(t, e, n) : this.transitionParallelNode(t, e, n); - }, a.prototype.next = function (t, e) { - var n, - a, - s, - u = this, - h = e.name, - l = [], - d = []; - - try { - for (var p = r(this.getCandidates(h)), y = p.next(); !y.done; y = p.next()) { - var m = y.value, - S = m.cond, - x = m["in"], - w = t.context, - b = !x || (A(x) && Mt(x) ? t.matches(f(this.getStateNodeById(x).path, this.delimiter)) : c(f(x, this.delimiter), v(this.path.slice(0, -2))(t.value))), - _ = !1; - - try { - _ = !S || R(this.machine, S, w, e, t); - } catch (t) { - throw new Error("Unable to evaluate guard '".concat(S.name || S.type, "' in transition for event '").concat(h, "' in state node '").concat(this.id, "':\n").concat(t.message)); - } - - if (_ && b) { - void 0 !== m.target && (d = m.target), l.push.apply(l, o([], i(m.actions), !1)), s = m; - break; - } + }, { + "id": "1650546079000", + "index": 1, + "audio_url": "https://teach.cdn.ireadabc.com/f9edc84a669688c5abddd55e2aab015d.mp3", + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "0", + "labelText": "21.3", + "posX": 692.4127500193598, + "posY": 218.14695959185556, + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/e3c67a25dd3bb34fe113e126e6e1cc81.json", + "name": "ox_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/81d487bf31d3a4d0f25f44c184ba9233.json", + "name": "ox_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/e199392b52a735f6e37a6815ec3bb10e.png", + "name": "ox_tex.png" + }, + "rect": { + "x": 159.34, + "y": 138.66, + "width": 38.83, + "height": 38.83 } - } catch (t) { - n = { - error: t - }; - } finally { - try { - y && !y.done && (a = p["return"]) && a.call(p); - } finally { - if (n) throw n.error; + }, { + "id": "1650546232189", + "index": 2, + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "1", + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/0a3ea93c62ff4087859ed587020c53b5.json", + "name": "car_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/6000e4fbbb95f545afa5456c64d8c7d1.json", + "name": "car_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/75e9972c15d2a67deedf60d448fd4e69.png", + "name": "car_tex.png" + }, + "rect": { + "x": 36.4, + "y": 78.56, + "width": 184.87, + "height": 184.87 } - } - - if (s) { - if (!d.length) return { - transitions: [s], - entrySet: [], - exitSet: [], - configuration: t.value ? [this] : [], - source: t, - actions: l - }; - var E = g(d.map(function (e) { - return u.getRelativeStateNodes(e, t.historyValue); - })), - T = !!s.internal; - return { - transitions: [s], - entrySet: T ? [] : g(E.map(function (t) { - return u.nodesFromChild(t); - })), - exitSet: T ? [] : [this], - configuration: E, - source: t, - actions: l - }; - } - }, a.prototype.nodesFromChild = function (t) { - if (t.escapes(this)) return []; - - for (var e = [], n = t; n && n !== this;) { - e.push(n), n = n.parent; - } - - return e.push(this), e; - }, a.prototype.escapes = function (t) { - if (this === t) return !1; - - for (var e = this.parent; e;) { - if (e === t) return !1; - e = e.parent; - } - - return !0; - }, a.prototype.getActions = function (t, e, n, a) { - var s, - c, - u, - h, - f = J([], a ? this.getStateNodes(a.value) : [this]), - l = t.configuration.length ? J(f, t.configuration) : f; - - try { - for (var d = r(l), p = d.next(); !p.done; p = d.next()) { - X(f, m = p.value) || t.entrySet.push(m); + }, { + "id": "1650546321127", + "index": 3, + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "1", + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/d4c1e1abcf3d8f5415747fd2599b8a8c.json", + "name": "Chair_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/1d7254eb7fa3008e8178347bb944cdcb.json", + "name": "Chair_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/48e85e8ff384eed72dfe865fc981e18c.png", + "name": "Chair_tex.png" + }, + "rect": { + "x": 36.4, + "y": 78.56, + "width": 184.87, + "height": 184.87 } - } catch (t) { - s = { - error: t - }; - } finally { - try { - p && !p.done && (c = d["return"]) && c.call(d); - } finally { - if (s) throw s.error; + }, { + "id": "1650546335240", + "index": 4, + "audio_url": "https://teach.cdn.ireadabc.com/6182d46bad09fccb8934217d33557204.mp3", + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "0", + "labelText": "53", + "posX": 452.5, + "posY": 129, + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/b462d80c21aa75995dd99f0f43ccf1e6.json", + "name": "quilt_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/866c9e2987870947fc63bce108ef157a.json", + "name": "quilt_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/d952c37f40c3cf07e024edfd4416423e.png", + "name": "quilt_tex.png" + }, + "rect": { + "x": 71.99, + "y": 100.75, + "width": 50.83, + "height": 36.97 } - } - - try { - for (var v = r(f), y = v.next(); !y.done; y = v.next()) { - var m; - X(l, m = y.value) && !X(t.exitSet, m.parent) || t.exitSet.push(m); + }, { + "id": "1650546644333", + "index": 5, + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "1", + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/6b8a1a7b0fd23686ea60465279cd4da0.json", + "name": "robot_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/31a74ed95fe48adab00702675811c3a8.json", + "name": "robot_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/e57052537d89356b0a79d8cb77980219.png", + "name": "robot_tex.png" + }, + "rect": { + "x": 36.4, + "y": 78.56, + "width": 184.87, + "height": 184.87 } - } catch (t) { - u = { - error: t - }; - } finally { - try { - y && !y.done && (h = v["return"]) && h.call(v); - } finally { - if (u) throw u.error; + }, { + "id": "1650546658697", + "index": 6, + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "1", + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/bf3616060460439eeb3fd5227370e15a.json", + "name": "panda_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/2dafeb25c973c910035ff7ed1a6a6334.json", + "name": "panda_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/75d90b05345fa470285ac488cb205cfd.png", + "name": "panda_tex.png" + }, + "rect": { + "x": 36.4, + "y": 78.56, + "width": 184.87, + "height": 184.87 } - } - - t.source || (t.exitSet = [], t.entrySet.push(this)); - var S = g(t.entrySet.map(function (r) { - var i = []; - if ("final" !== r.type) return i; - var o = r.parent; - if (!o.parent) return i; - i.push(Tt(r.id, r.doneData), Tt(o.id, r.doneData ? x(r.doneData, e, n) : void 0)); - var a = o.parent; - return "parallel" === a.type && U(a).every(function (e) { - return H(t.configuration, e); - }) && i.push(Tt(a.id)), i; - })); - t.exitSet.sort(function (t, e) { - return e.order - t.order; - }), t.entrySet.sort(function (t, e) { - return t.order - e.order; - }); - - var w = new Set(t.entrySet), - b = new Set(t.exitSet), - _ = i([g(Array.from(w).map(function (t) { - return o(o([], i(t.activities.map(function (t) { - return wt(t); - })), !1), i(t.onEntry), !1); - })).concat(S.map(vt)), g(Array.from(b).map(function (t) { - return o(o([], i(t.onExit), !1), i(t.activities.map(function (t) { - return bt(t); - })), !1); - }))], 2), - E = _[0], - T = _[1]; - - return dt(T.concat(t.actions).concat(E), this.machine.options.actions); - }, a.prototype.transition = function (t, e, n) { - void 0 === t && (t = this.initialState); - var r, - a, - s = L(e); - if (t instanceof kt) r = void 0 === n ? t : this.resolveState(kt.from(t, n));else { - var c = A(t) ? this.resolve(l(this.getResolvedPath(t))) : this.resolve(t), - u = null != n ? n : this.machine.context; - r = this.resolveState(kt.from(c, u)); - } - if (this.strict && !this.events.includes(s.name) && (a = s.name, !/^(done|error)\./.test(a))) throw new Error("Machine '".concat(this.id, "' does not accept event '").concat(s.name, "'")); - var h = this._transition(r.value, r, s) || { - transitions: [], - configuration: [], - entrySet: [], - exitSet: [], - source: r, - actions: [] - }, - f = J([], this.getStateNodes(r.value)), - d = h.configuration.length ? J(f, h.configuration) : f; - return h.configuration = o([], i(d), !1), this.resolveTransition(h, r, s); - }, a.prototype.resolveRaisedTransition = function (t, e, n) { - var r, - a = t.actions; - return (t = this.transition(t, e))._event = n, t.event = n.data, (r = t.actions).unshift.apply(r, o([], i(a), !1)), t; - }, a.prototype.resolveTransition = function (n, o, a, c) { - var u, - h, - f = this; - void 0 === a && (a = ht), void 0 === c && (c = this.machine.context); - var l = n.configuration, - d = !o || n.transitions.length > 0, - p = d ? $(this.machine, l) : void 0, - v = o ? o.historyValue ? o.historyValue : n.source ? this.machine.historyValue(o.value) : void 0 : void 0, - y = o ? o.context : c, - g = this.getActions(n, y, a, o), - m = o ? _e({}, o.activities) : {}; - - try { - for (var S = r(g), w = S.next(); !w.done; w = S.next()) { - var E = w.value; - E.type === K ? m[E.activity.id || E.activity.type] = E : E.type === Q && (m[E.activity.id || E.activity.type] = !1); + }, { + "id": "1650546672448", + "index": 7, + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "1", + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/5feff811b0117dd8e67973072e60d310.json", + "name": "queen_1_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/bb5856b92b09c5fe7a1da00bb68134ca.json", + "name": "queen_1_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/f4e5a138b086ef3dcfa57432543b66e9.png", + "name": "queen_1_tex.png" + }, + "animType": "dragonBone", + "rect": { + "x": 36.4, + "y": 78.56, + "width": 184.87, + "height": 184.87 } - } catch (t) { - u = { - error: t - }; - } finally { - try { - w && !w.done && (h = S["return"]) && h.call(S); - } finally { - if (u) throw u.error; + }, { + "id": "1650546687069", + "index": 8, + "audio_url": "https://teach.cdn.ireadabc.com/301858df7b07e661426a006acb26059c.mp3", + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "0", + "labelText": "42.5", + "posX": 512.3883524629834, + "posY": 259.83617125849, + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/f3a8efcd1850ee8a6cee89a18e86dc4a.json", + "name": "milk_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/73b05f19d419bd3ac17c2b92dab88423.json", + "name": "milk_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/e38375da46f85a23202d5cbc812d62e4.png", + "name": "milk_tex.png" + }, + "rect": { + "x": 37.72, + "y": 168.1, + "width": 21.17, + "height": 40.34 } + }, { + "id": "1650547060490", + "index": 9, + "audio_url": "https://teach.cdn.ireadabc.com/05e5b29aeffa4ef94bcc5b23167aec90.mp3", + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "0", + "labelText": "47.7", + "posX": 483.22135734006736, + "posY": 245.38039407076505, + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/99a6e6d9361eca7e51ed34ca2e0fd017.json", + "name": "bird_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/6a379ddbe6df1806368c43c8ee82332d.json", + "name": "bird_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/cf04c63104d89511902578944061f980.png", + "name": "bird_tex.png" + }, + "rect": { + "x": 17.91, + "y": 140.83, + "width": 18.52, + "height": 73.95 + } + }, { + "id": "1650547373869", + "index": 10, + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "1", + "labelText": "60", + "posX": 420.5, + "posY": 295, + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/7ebc28f3f339b16ca48d20f2a3eb44c1.json", + "name": "alligator_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/b04e8206fd217bd22dcdac1008393317.json", + "name": "alligator_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/b3990d94612bd3d6e25cf200f85e4334.png", + "name": "alligator_tex.png" + }, + "rect": { + "x": 16.06, + "y": 229.24, + "width": 103.52, + "height": 86.89 + } + }, { + "id": "1650547482398", + "index": 11, + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "1", + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/a19f2ed7c297c70c639e54e969d64593.json", + "name": "rabbit_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/4b4f8189cf79fadd7e6533ad84db96be.json", + "name": "rabbit_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/8f953c861eac94e4e22a8e4ec3eb56b5.png", + "name": "rabbit_tex.png" + }, + "rect": { + "x": 36.4, + "y": 78.56, + "width": 184.87, + "height": 184.87 + } + }, { + "id": "1650547496232", + "index": 12, + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "1", + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/89e0fc6085c294866142803b4ff267ba.json", + "name": "King_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/d6cfd2d9cd2cd9aff09ab7f03e287421.json", + "name": "King_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/8c02c3561a2eea0423cb1102200e76f9.png", + "name": "King_tex.png" + }, + "rect": { + "x": 36.4, + "y": 78.56, + "width": 184.87, + "height": 184.87 + } + }, { + "id": "1650547510648", + "index": 13, + "audio_url": "https://teach.cdn.ireadabc.com/717ee9713b18d32d38ee089c0abc85ea.mp3", + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "0", + "labelText": "10.2", + "posX": 641.6680134951944, + "posY": 288.93672702541255, + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/3b7113ebdedcae54be6d0b9633875b88.json", + "name": "net_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/fc810762f1f2025585e722e43e94137b.json", + "name": "net_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/5c90820da4f559280fee4579e8db2dbc.png", + "name": "net_tex.png" + }, + "rect": { + "x": 123.03, + "y": 183.02, + "width": 37.9, + "height": 52.68 + } + }, { + "id": "1650547555018", + "index": 14, + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "1", + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/0a5c8df5a23aca7a7540b87340c7608f.json", + "name": "ostrich_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/2478573c91d1a83fa038e7f6a9db8a85.json", + "name": "ostrich_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/4619ace67e5770e1fd7fc3ff76e7263e.png", + "name": "ostrich_tex.png" + }, + "rect": { + "x": 36.4, + "y": 78.56, + "width": 184.87, + "height": 184.87 + } + }, { + "id": "1650547573305", + "index": 15, + "audio_url": "https://teach.cdn.ireadabc.com/b7bc161c3a3ee143a53058691abf4fa9.mp3", + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "0", + "labelText": "15.9", + "posX": 670.8119839772754, + "posY": 137.87940870201697, + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/91e8ca03d1df89e4ec2404421d4c692f.json", + "name": "durazno_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/32d259b0194370625f8fe94b1ddc0a85.json", + "name": "durazno_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/8eef56b20e221a36fce1d672199859ff.png", + "name": "durazno_tex.png" + }, + "rect": { + "x": 146.92, + "y": 83.73, + "width": 32.34, + "height": 32.34 + } + }] + }; // return {"begin_audio":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","begin_sep_time":1,"guide_audio":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","playing_audio":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","right_audio":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","wrong_audio":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","wrong_audio1":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","wrong_audio2":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","end_audio":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","bgItem":{"url":"http://staging-teach.cdn.ireadabc.com/84ec6edc20bceaaa9dbe824092b6860d.png","rect":{"x":736.95,"y":0,"width":599.09,"height":775}},"hotZoneItemArr":[{"id":"1659333645573","index":0,"audio_url":"http://staging-teach.cdn.ireadabc.com/5a1a2670845bfe76662e86d9a3a69f81.mp3","itemType":"rect","fontScale":1.61953125,"imgScale":1,"imgSizeW":0,"imgSizeH":0,"mapScale":1.61953125,"dragDot":{"x":1036.5,"y":387.5},"gIdx":"1","labelText":"1","posX":887.5,"posY":165.5,"skeJsonData":{"url":"http://staging-teach.cdn.ireadabc.com/133a1f60719ed26247e35dc022d82862.json","name":"spineboy-pro.json"},"texJsonData":{"url":"http://staging-teach.cdn.ireadabc.com/e0945b8265ea3b8053afb814c6b849d3.atlas","name":"spineboy-pro.atlas"},"texPngData":{"url":"http://staging-teach.cdn.ireadabc.com/517553f50224915148f9efc5b7556798.png","name":"spineboy-pro.png"},"animType":"spine","rect":{"x":48.05,"y":65.5,"width":205,"height":200}},{"id":"1659334098930","index":1,"audio_url":"http://staging-teach.cdn.ireadabc.com/16eb06a6beb9e4fa77c9b5d2d643ab29.mp3","itemType":"rect","fontScale":1.61953125,"imgScale":1,"imgSizeW":0,"imgSizeH":0,"mapScale":1.61953125,"dragDot":{"x":1036.5,"y":387.5},"gIdx":"0","labelText":"1","posX":1212.5,"posY":643.5,"skeJsonData":{"url":"http://staging-teach.cdn.ireadabc.com/679fed26daa464819d553de6331b3552.json","name":"alien-pro.json"},"texJsonData":{"url":"http://staging-teach.cdn.ireadabc.com/65d8214c6b5c5d0496e17adb0408276a.atlas","name":"alien-pro.atlas"},"texPngData":{"url":"http://staging-teach.cdn.ireadabc.com/a319b372899239325b90bb4ec07b4970.png","name":"alien-pro.png"},"animType":"spine","rect":{"x":375.56,"y":543.5,"width":200,"height":200}}]} + // return defaultData; + }, + preloadItem: function preloadItem() { + this.addPreloadImage(); + this.addPreloadAudio(); + this.addPreloadAnima(); + this.preload(); + }, + addPreloadImage: function addPreloadImage() { + this._imageResList.push({ + url: this.data.bgItem.url + }); + + for (var _iterator = _createForOfIteratorHelperLoose(this.data.hotZoneItemArr), _step; !(_step = _iterator()).done;) { + var q = _step.value; + + if (q.gIdx == '0') { + this._imageResList.push({ + url: q.texPngData.url + }); } - - var T, - N, - O = i(Pt(this, o, y, a, g, this.machine.config.preserveActionOrder), 2), - P = O[0], - k = O[1], - I = i(b(P, function (e) { - return e.type === W || e.type === Y && e.to === t.SpecialTargets.Internal; - }), 2), - j = I[0], - C = I[1], - V = P.filter(function (t) { - var e; - return t.type === K && (null === (e = t.activity) || void 0 === e ? void 0 : e.type) === it; - }).reduce(function (t, e) { - return t[e.activity.id] = function (t, e, n, r) { - var i, - o = M(t.src), - a = null === (i = null == e ? void 0 : e.options.services) || void 0 === i ? void 0 : i[o.type], - s = t.data ? x(t.data, n, r) : void 0, - c = a ? Vt(a, t.id, s) : Ct(t.id); - return c.meta = t, c; - }(e.activity, f.machine, k, a), t; - }, o ? _e({}, o.children) : {}), - L = p ? n.configuration : o ? o.configuration : [], - D = H(L, this), - R = new kt({ - value: p || o.value, - context: k, - _event: a, - _sessionid: o ? o._sessionid : null, - historyValue: p ? v ? (T = v, N = p, { - current: N, - states: _(T, N) - }) : void 0 : o ? o.historyValue : void 0, - history: !p || n.source ? o : void 0, - actions: p ? C : [], - activities: p ? m : o ? o.activities : {}, - events: [], - configuration: L, - transitions: n.transitions, - children: V, - done: D, - tags: null == o ? void 0 : o.tags, - machine: this - }), - z = y !== k; - R.changed = a.name === st || z; - var F = R.history; - F && delete F.history; - var U = !D && (this._transient || l.some(function (t) { - return t._transient; - })); - if (!(d || U && "" !== a.name)) return R; - var B = R; - if (!D) for (U && (B = this.resolveRaisedTransition(B, { - type: tt - }, a)); j.length;) { - var J = j.shift(); - B = this.resolveRaisedTransition(B, J._event, a); - } - var q = B.changed || (F ? !!B.actions.length || z || typeof F.value != typeof B.value || !function t(e, n) { - if (e === n) return !0; - if (void 0 === e || void 0 === n) return !1; - if (A(e) || A(n)) return e === n; - var r = s(e), - i = s(n); - return r.length === i.length && r.every(function (r) { - return t(e[r], n[r]); + + if (q.gIdx == '1') { + this._imageResList.push({ + url: q.texPngData.url }); - }(B.value, F.value) : void 0); - return B.changed = q, B.history = F, B.tags = G(B.configuration), B; - }, a.prototype.getStateNode = function (t) { - if (Mt(t)) return this.machine.getStateNodeById(t); - if (!this.states) throw new Error("Unable to retrieve child state '".concat(t, "' from '").concat(this.id, "'; no child states exist.")); - var e = this.states[t]; - if (!e) throw new Error("Child state '".concat(t, "' does not exist on '").concat(this.id, "'")); - return e; - }, a.prototype.getStateNodeById = function (t) { - var e = Mt(t) ? t.slice("#".length) : t; - if (e === this.id) return this; - var n = this.machine.idMap[e]; - if (!n) throw new Error("Child state node '#".concat(e, "' does not exist on machine '").concat(this.id, "'")); - return n; - }, a.prototype.getStateNodeByPath = function (t) { - if ("string" == typeof t && Mt(t)) try { - return this.getStateNodeById(t.slice(1)); - } catch (t) {} + } - for (var e = h(t, this.delimiter).slice(), n = this; e.length;) { - var r = e.shift(); - if (!r.length) break; - n = n.getStateNode(r); + if (q.gIdx == '2') { + this._imageResList.push({ + url: q.pic_url + }); } + } + }, + prepareAudioClip: function prepareAudioClip(url, key) { + var _this3 = this; - return n; - }, a.prototype.resolve = function (t) { - var e, - n = this; - if (!t) return this.initialStateValue || Rt; + if (url) { + cc.assetManager.loadRemote(url, function (err, audioClip) { + if (audioClip) { + _this3[key] = audioClip; + } + }); + } + }, + addPreloadAudio: function addPreloadAudio() { + this._audioResList.push({ + url: this.data.begin_audio + }); // this.prepareAudioClip(this.data.begin_audio1, 'begin_audio1') + // this._audioResList.push({ url: this.data.begin_audio2 }); + // this.prepareAudioClip(this.data.begin_audio2, 'begin_audio2') - switch (this.type) { - case "parallel": - return d(this.initialStateValue, function (e, r) { - return e ? n.getStateNode(r).resolve(t[r] || e) : Rt; - }); - case "compound": - if (A(t)) { - var r = this.getStateNode(t); - return "parallel" === r.type || "compound" === r.type ? ((e = {})[t] = r.initialStateValue, e) : t; - } + this._audioResList.push({ + url: this.data.guide_audio + }); - return s(t).length ? d(t, function (t, e) { - return t ? n.getStateNode(e).resolve(t) : Rt; - }) : this.initialStateValue || {}; + this._audioResList.push({ + url: this.data.playing_audio + }); - default: - return t || Rt; - } - }, a.prototype.getResolvedPath = function (t) { - if (Mt(t)) { - var e = this.machine.idMap[t.slice("#".length)]; - if (!e) throw new Error("Unable to find state node '".concat(t, "'")); - return e.path; - } + if (this.data.wrong_audio) { + this._audioResList.push({ + url: this.data.wrong_audio + }); - return h(t, this.delimiter); - }, Object.defineProperty(a.prototype, "initialStateValue", { - get: function get() { - var t, e; - if (this.__cache.initialStateValue) return this.__cache.initialStateValue; - if ("parallel" === this.type) e = p(this.states, function (t) { - return t.initialStateValue || Rt; - }, function (t) { - return !("history" === t.type); - });else if (void 0 !== this.initial) { - if (!this.states[this.initial]) throw new Error("Initial state '".concat(this.initial, "' not found on '").concat(this.key, "'")); - e = F(this.states[this.initial]) ? this.initial : ((t = {})[this.initial] = this.states[this.initial].initialStateValue, t); - } else e = {}; - return this.__cache.initialStateValue = e, this.__cache.initialStateValue; - }, - enumerable: !1, - configurable: !0 - }), a.prototype.getInitialState = function (t, e) { - var n = this.getStateNodes(t); - return this.resolveTransition({ - configuration: n, - entrySet: n, - exitSet: [], - transitions: [], - source: void 0, - actions: [] - }, void 0, void 0, e); - }, Object.defineProperty(a.prototype, "initialState", { - get: function get() { - this._init(); + this.wrongAudio = this.data.wrong_audio; + } - var t = this.initialStateValue; - if (!t) throw new Error("Cannot retrieve initial state from simple state '".concat(this.id, "'.")); - return this.getInitialState(t); - }, - enumerable: !1, - configurable: !0 - }), Object.defineProperty(a.prototype, "target", { - get: function get() { - var t; + if (this.data.right_audio) { + this._audioResList.push({ + url: this.data.right_audio + }); - if ("history" === this.type) { - var e = this.config; - t = A(e.target) && Mt(e.target) ? l(this.machine.getStateNodeById(e.target).path.slice(this.path.length - 1)) : e.target; - } + this.rightAudio = this.data.right_audio; + } - return t; - }, - enumerable: !1, - configurable: !0 - }), a.prototype.getRelativeStateNodes = function (t, e, n) { - return void 0 === n && (n = !0), n ? "history" === t.type ? t.resolveHistory(e) : t.initialStateNodes : [t]; - }, Object.defineProperty(a.prototype, "initialStateNodes", { - get: function get() { - var t = this; - return F(this) ? [this] : "compound" !== this.type || this.initial ? g(y(this.initialStateValue).map(function (e) { - return t.getFromRelativePath(e); - })) : [this]; - }, - enumerable: !1, - configurable: !0 - }), a.prototype.getFromRelativePath = function (t) { - if (!t.length) return [this]; - var e = i(t), - n = e[0], - r = e.slice(1); - if (!this.states) throw new Error("Cannot retrieve subPath '".concat(n, "' from node with no states")); - var o = this.getStateNode(n); - if ("history" === o.type) return o.resolveHistory(); - if (!this.states[n]) throw new Error("Child state '".concat(n, "' does not exist on '").concat(this.id, "'")); - return this.states[n].getFromRelativePath(r); - }, a.prototype.historyValue = function (t) { - if (s(this.states).length) return { - current: t || this.initialStateValue, - states: p(this.states, function (e, n) { - if (!t) return e.historyValue(); - var r = A(t) ? void 0 : t[n]; - return e.historyValue(r || e.initialStateValue); - }, function (t) { - return !t.history; - }) - }; - }, a.prototype.resolveHistory = function (t) { - var e = this; - if ("history" !== this.type) return [this]; - var n = this.parent; + this._audioResList.push({ + url: this.data.wrong_audio1 + }); - if (!t) { - var i = this.target; - return i ? g(y(i).map(function (t) { - return n.getFromRelativePath(t); - })) : n.initialStateNodes; + this._audioResList.push({ + url: this.data.wrong_audio2 + }); + + this._audioResList.push({ + url: this.data.end_audio + }); + + for (var _iterator2 = _createForOfIteratorHelperLoose(this.data.hotZoneItemArr), _step2; !(_step2 = _iterator2()).done;) { + var q = _step2.value; + + if (q.gIdx == '0') { + this._audioResList.push({ + url: q.audio_url + }); } + } + }, + debugPointer: function debugPointer() { + var boxDebugger = cc.find('Canvas/box-debugger'); - var o, - a, - s = (o = n.path, a = "states", function (t) { - var e, - n, - i = t; + if (!this.isDebug) { + boxDebugger.active = false; + return; + } - try { - for (var s = r(o), c = s.next(); !c.done; c = s.next()) { - var u = c.value; - i = i[a][u]; - } - } catch (t) { - e = { - error: t - }; - } finally { - try { - c && !c.done && (n = s["return"]) && n.call(s); - } finally { - if (e) throw e.error; + if (!this.POINTER_NODE) { + this.POINTER_NODE = new cc.Node(); + this.POINTER_NODE.parent = boxDebugger; + this.POINTER_NODE.name = 'POINTER_NODE'; + this.POINTER_NODE.addComponent(cc.Graphics); + } + + var grap = this.POINTER_NODE.getComponent(cc.Graphics); + grap.clear(); + var ground = cc.find('Canvas/frame-border/ground'); + var baseW = ground.width, + baseH = ground.height; + var _this$_lastFingerPosi = this._lastFingerPosition.pos, + px = _this$_lastFingerPosi.x, + py = _this$_lastFingerPosi.y; + var x = baseW * px - baseW / 2; + var y = baseH - baseH * py - baseH / 2 - 16; + var pn = new cc.Node(); + grap.fillColor = cc.color(255, 0, 0); + grap.circle(x, y, 32); + grap.fill(); + grap.stroke(); + }, + debugGraphics: function debugGraphics() { + var boxDebugger = cc.find('Canvas/box-debugger'); + + if (!this.isDebug) { + boxDebugger.active = false; + return; + } + + boxDebugger.active = true; + console.log('show debug graphics'); + var ground = cc.find('Canvas/frame-border/ground'); + var canvas = cc.find('Canvas'); + var baseW = ground.width, + baseH = ground.height; + var _this$data$bgItem$rec = this.data.bgItem.rect, + bgW = _this$data$bgItem$rec.width, + bgH = _this$data$bgItem$rec.height; + var scaleX = bgW / baseW; + var scaleY = bgH / baseH; + var added = false; + this.data.hotZoneItemArr.forEach(function (area) { + if (added) {// return + } + + if (area.gIdx != '0') { + return; + } + + added = true; + var dn = new cc.Node(); + var lblNode = new cc.Node(); + lblNode.parent = dn; + var lbl = lblNode.addComponent(cc.Label); + lblNode.color = cc.color(0, 0, 0); + lbl.string = area.skeJsonData.name.substring(0, area.skeJsonData.name.length - 9); + dn.name = lbl.string; + dn.parent = boxDebugger; + dn.width = baseW; + dn.height = baseH; + var grap = dn.addComponent(cc.Graphics); + var r = (0, _util.RandomInt)(1, 255); + var g = (0, _util.RandomInt)(1, 255); + var b = (0, _util.RandomInt)(1, 255); + grap.fillColor = cc.color(r, g, b, 127); + var _area$rect = area.rect, + rx = _area$rect.x, + ry = _area$rect.y, + rw = _area$rect.width, + rh = _area$rect.height; + var w = rw / bgW * baseW; + var h = rh / bgH * baseH; + var x = rx / bgW * baseW - baseW / 2; + var y = baseH - ry / bgH * baseH - h - baseH / 2; // w *= scaleX + // h *= scaleY + // x *= scaleX + // y *= scaleY + // const p = boxDebugger.convertToNodeSpaceAR(cc.v2(x,y)); + // x = p.x; + // y = p.y; + + lblNode.x = x; + lblNode.y = y + h; // dn.scaleX = scaleX; + // dn.scaleY = scaleY; + // dn.scale = area.mapScale; // minScale; // this._mapScaleMax * area.mapScale; // ; + + console.log('[debug]', area.skeJsonData.name, x, y, w, h); + grap.fillRect(x, y, w, h); + grap.stroke(); + }); + }, + addPreloadAnima: function addPreloadAnima() {}, + preload: function preload() { + var _this4 = this; + + var preloadArr = this._imageResList.concat(this._audioResList).concat(this._animaResList); // console.log(preloadArr); + + + cc.assetManager.loadAny(preloadArr, null, function (f, t, item) {// console.log(f, t, item) + }, function (err, data) { + // console.log(err, data); + var ground = cc.find("Canvas/frame-border/ground"); + var groundBg = cc.find("Canvas/frame-border/ground/bg"); + groundBg.active = false; + var baseRect = _this4.data.bgItem.rect; + (0, _util.getSpriteFrimeByUrl)(_this4.data.bgItem.url, function (sf) { + var gs = groundBg.getComponent(cc.Sprite); + gs.spriteFrame = sf; + groundBg.active = true; + var dbCount = 0; + var finishDbCount = 0; + + for (var _iterator3 = _createForOfIteratorHelperLoose(_this4.data.hotZoneItemArr), _step3; !(_step3 = _iterator3()).done;) { + var block = _step3.value; + + if (block.gIdx == '0' || block.gIdx == '1') { + dbCount++; } } - return i; - })(t).current; - return A(s) ? [n.getStateNode(s)] : g(y(s).map(function (t) { - return "deep" === e.history ? n.getFromRelativePath(t) : [n.states[t[0]]]; - })); - }, Object.defineProperty(a.prototype, "stateIds", { - get: function get() { - var t = this, - e = g(s(this.states).map(function (e) { - return t.states[e].stateIds; - })); - return [this.id].concat(e); - }, - enumerable: !1, - configurable: !0 - }), Object.defineProperty(a.prototype, "events", { - get: function get() { - var t, e, n, i; - if (this.__cache.events) return this.__cache.events; - var o = this.states, - a = new Set(this.ownEvents); - if (o) try { - for (var c = r(s(o)), u = c.next(); !u.done; u = c.next()) { - var h = o[u.value]; - if (h.states) try { - for (var f = (n = void 0, r(h.events)), l = f.next(); !l.done; l = f.next()) { - var d = l.value; - a.add("".concat(d)); - } - } catch (t) { - n = { - error: t - }; - } finally { - try { - l && !l.done && (i = f["return"]) && i.call(f); - } finally { - if (n) throw n.error; - } - } - } - } catch (e) { - t = { - error: e - }; - } finally { - try { - u && !u.done && (e = c["return"]) && e.call(c); - } finally { - if (t) throw t.error; + for (var _iterator4 = _createForOfIteratorHelperLoose(_this4.data.hotZoneItemArr), _step4; !(_step4 = _iterator4()).done;) { + var _block = _step4.value; + + if (_block.gIdx == '2') { + (function () { + var s1 = (ground.width / _block.imgSizeW + ground.height / _block.imgSizeH) / 2; + var node = new cc.Node(); + node.parent = ground; + var spr = node.addComponent(cc.Sprite); + (0, _util.getSpriteFrimeByUrl)(_block.pic_url, function (sf) { + spr.spriteFrame = sf; + node.scale = s1; + }); + })(); } - } - return this.__cache.events = Array.from(a); - }, - enumerable: !1, - configurable: !0 - }), Object.defineProperty(a.prototype, "ownEvents", { - get: function get() { - var t = new Set(this.transitions.filter(function (t) { - return !(!t.target && !t.actions.length && t.internal); - }).map(function (t) { - return t.eventType; - })); - return Array.from(t); - }, - enumerable: !1, - configurable: !0 - }), a.prototype.resolveTarget = function (t) { - var e = this; - if (void 0 !== t) return t.map(function (t) { - if (!A(t)) return t; - var n = t[0] === e.delimiter; - if (n && !e.parent) return e.getStateNodeByPath(t.slice(1)); - var r = n ? e.key + t : t; - if (!e.parent) return e.getStateNodeByPath(r); - try { - return e.parent.getStateNodeByPath(r); - } catch (t) { - throw new Error("Invalid transition definition for state node '".concat(e.id, "':\n").concat(t.message)); - } - }); - }, a.prototype.formatTransition = function (t) { - var n = this, - r = function (t) { - if (void 0 !== t && "" !== t) return S(t); - }(t.target), - i = "internal" in t ? t.internal : !r || r.some(function (t) { - return A(t) && t[0] === n.delimiter; - }), - o = this.machine.options.guards, - a = this.resolveTarget(r), - s = _e(_e({}, t), { - actions: dt(S(t.actions)), - cond: O(t.cond, o), - target: a, - source: this, - internal: i, - eventType: t.event, - toJSON: function toJSON() { - return _e(_e({}, s), { - target: s.target ? s.target.map(function (t) { - return "#".concat(t.id); - }) : void 0, - source: "#".concat(n.id) - }); - } - }); + if (_block.gIdx == '0' || _block.gIdx == '1') { + (function () { + var n = new cc.Node(); // n.scale = 0.25; - return s; - }, a.prototype.formatTransitions = function () { - var t, - e, - a, - c = this; - if (this.config.on) { - if (Array.isArray(this.config.on)) a = this.config.on;else { - var u = this.config.on, - h = u["*"], - f = void 0 === h ? [] : h, - l = n(u, ["*"]); - a = g(s(l).map(function (t) { - return D(t, l[t]); - }).concat(D("*", f))); - } - } else a = []; - var d = this.config.always ? D("", this.config.always) : [], - p = this.config.onDone ? D(String(Tt(this.id)), this.config.onDone) : [], - v = g(this.invoke.map(function (t) { - var e = []; - return t.onDone && e.push.apply(e, o([], i(D(String(Nt(t.id)), t.onDone)), !1)), t.onError && e.push.apply(e, o([], i(D(String(At(t.id)), t.onError)), !1)), e; - })), - y = this.after, - m = g(o(o(o(o([], i(p), !1), i(v), !1), i(a), !1), i(d), !1).map(function (t) { - return S(t).map(function (t) { - return c.formatTransition(t); - }); - })); + n.scale = ground.width / groundBg.width; + n.parent = ground; + n.active = false; - try { - for (var x = r(y), w = x.next(); !w.done; w = x.next()) { - var b = w.value; - m.push(b); - } - } catch (e) { - t = { - error: e - }; - } finally { - try { - w && !w.done && (e = x["return"]) && e.call(x); - } finally { - if (t) throw t.error; - } - } + if (_block.animType == 'spine') { + var skeleton = n.addComponent(sp.Skeleton); + n.isSpine = true; + (0, _util.loadSpine)(skeleton, _block.texPngData.name, { + tex: _block.texPngData.url, + atlas: _block.texJsonData.url, + ske: _block.skeJsonData.url + }).then(function (_ref) { + var width = _ref.width, + height = _ref.height; + n.width = width; + n.height = height; + n.active = true; // db.playAnimation('null', 0); + // skeleton.setToSetupPose(); + // skeleton.setAnimation(0, 'enlarge', true); - return m; - }, a; - }(); + _this4._allAnimationNodes.push(n); - var Ft = { - deferEvents: !1 - }, - Ut = function () { - function t(t) { - this.processingEvent = !1, this.queue = [], this.initialized = !1, this.options = _e(_e({}, Ft), t); - } + finishDbCount++; + console.log(finishDbCount, dbCount); - return t.prototype.initialize = function (t) { - if (this.initialized = !0, t) { - if (!this.options.deferEvents) return void this.schedule(t); - this.process(t); - } + if (finishDbCount == dbCount) { + _this4.loadEnd(); + } + })["catch"](function () { + finishDbCount++; + console.log(finishDbCount, dbCount); - this.flushEvents(); - }, t.prototype.schedule = function (t) { - if (this.initialized && !this.processingEvent) { - if (0 !== this.queue.length) throw new Error("Event queue should be empty when it is not processing events"); - this.process(t), this.flushEvents(); - } else this.queue.push(t); - }, t.prototype.clear = function () { - this.queue = []; - }, t.prototype.flushEvents = function () { - for (var t = this.queue.shift(); t;) { - this.process(t), t = this.queue.shift(); - } - }, t.prototype.process = function (t) { - this.processingEvent = !0; + if (finishDbCount == dbCount) { + _this4.loadEnd(); + } + }); + } else { + var db = n.addComponent(dragonBones.ArmatureDisplay); + (0, _util.loadDragonBones)(db, { + tex: _block.texPngData.url, + atlas: _block.texJsonData.url, + ske: _block.skeJsonData.url + }).then(function (_ref2) { + var width = _ref2.width, + height = _ref2.height; + n.width = width; + n.height = height; + n.active = true; + db.playAnimation('null', 0); - try { - t(); - } catch (t) { - throw this.clear(), t; - } finally { - this.processingEvent = !1; - } - }, t; - }(), - Bt = new Map(), - Jt = 0, - qt = function qt() { - return "x:".concat(Jt++); - }, - $t = function $t(t, e) { - return Bt.set(t, e), t; - }, - Xt = function Xt(t) { - return Bt.get(t); - }, - Ht = function Ht(t) { - Bt["delete"](t); - }; + _this4._allAnimationNodes.push(n); - function Gt() { - return "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : void 0; - } + finishDbCount++; + console.log(finishDbCount, dbCount); - function Kt(t) { - if (Gt()) { - var e = function () { - var t = Gt(); - if (t && "__xstate__" in t) return t.__xstate__; - }(); - - e && e.register(t); - } - } - - function Qt(t, n) { - void 0 === n && (n = {}); - var r, - i = t.initialState, - o = new Set(), - a = [], - s = !1, - c = (r = { - id: n.id, - send: function send(e) { - a.push(e), function () { - if (!s) { - for (s = !0; a.length > 0;) { - var e = a.shift(); - i = t.transition(i, e, u), o.forEach(function (t) { - return t.next(i); - }); - } - - s = !1; - } - }(); - }, - getSnapshot: function getSnapshot() { - return i; - }, - subscribe: function subscribe(t, e, n) { - var r = z(t, e, n); - return o.add(r), r.next(i), { - unsubscribe: function unsubscribe() { - o["delete"](r); - } - }; - } - }, _e({ - subscribe: function subscribe() { - return { - unsubscribe: function unsubscribe() {} - }; - }, - id: "anonymous", - getSnapshot: function getSnapshot() {} - }, r)), - u = { - parent: n.parent, - self: c, - id: n.id || "anonymous", - observers: o - }; - return i = t.start ? t.start(u) : i, c; - } + if (finishDbCount == dbCount) { + _this4.loadEnd(); + } + })["catch"](function () { + finishDbCount++; + console.log(finishDbCount, dbCount); - var Wt, - Yt = { - sync: !1, - autoForward: !1 - }; - (Wt = t.InterpreterStatus || (t.InterpreterStatus = {}))[Wt.NotStarted = 0] = "NotStarted", Wt[Wt.Running = 1] = "Running", Wt[Wt.Stopped = 2] = "Stopped"; + if (finishDbCount == dbCount) { + _this4.loadEnd(); + } + }); + } - var Zt = function () { - function n(r, i) { - var o = this; - void 0 === i && (i = n.defaultOptions), this.machine = r, this.scheduler = new Ut(), this.delayedEventsMap = {}, this.listeners = new Set(), this.contextListeners = new Set(), this.stopListeners = new Set(), this.doneListeners = new Set(), this.eventListeners = new Set(), this.sendListeners = new Set(), this.initialized = !1, this.status = t.InterpreterStatus.NotStarted, this.children = new Map(), this.forwardTo = new Set(), this.init = this.start, this.send = function (e, n) { - if (T(e)) return o.batch(e), o.state; - var r = L(V(e, n)); - if (o.status === t.InterpreterStatus.Stopped) return o.state; - if (o.status !== t.InterpreterStatus.Running && !o.options.deferEvents) throw new Error('Event "'.concat(r.name, '" was sent to uninitialized service "').concat(o.machine.id, '". Make sure .start() is called for this service, or set { deferEvents: true } in the service options.\nEvent: ').concat(JSON.stringify(r.data))); - return o.scheduler.schedule(function () { - o.forward(r); - var t = o.nextState(r); - o.update(t, r); - }), o._state; - }, this.sendTo = function (n, r) { - var i, - a = o.parent && (r === t.SpecialTargets.Parent || o.parent.id === r), - s = a ? o.parent : A(r) ? o.children.get(r) || Xt(r) : (i = r) && "function" == typeof i.send ? r : void 0; - if (s) "machine" in s ? s.send(_e(_e({}, n), { - name: n.name === at ? "".concat(At(o.id)) : n.name, - origin: o.sessionId - })) : s.send(n.data);else if (!a) throw new Error("Unable to send event to child '".concat(r, "' from service '").concat(o.id, "'.")); - }; + if (_block.gIdx == '0') { + var rectInfo = { + node: n, + audio_url: _block.audio_url, + rect: { + x: _block.rect.x / baseRect.width, + y: _block.rect.y / baseRect.height, + width: _block.rect.width / baseRect.width, + height: _block.rect.height / baseRect.height + } + }; - var a = _e(_e({}, n.defaultOptions), i), - s = a.clock, - c = a.logger, - u = a.parent, - h = a.id, - f = void 0 !== h ? h : r.id; + _this4._figurePointRectArray.push(rectInfo); // this.addRectNodeListener(block); - this.id = f, this.logger = c, this.clock = s, this.parent = u, this.options = a, this.scheduler = new Ut({ - deferEvents: this.options.deferEvents - }), this.sessionId = qt(); - } - return Object.defineProperty(n.prototype, "initialState", { - get: function get() { - var t = this; - return this._initialState ? this._initialState : jt(this, function () { - return t._initialState = t.machine.initialState, t._initialState; - }); - }, - enumerable: !1, - configurable: !0 - }), Object.defineProperty(n.prototype, "state", { - get: function get() { - return this._state; - }, - enumerable: !1, - configurable: !0 - }), n.prototype.execute = function (t, e) { - var n, i; + if (_block.labelText) { + var k = +_block.labelText * 1000; - try { - for (var o = r(t.actions), a = o.next(); !a.done; a = o.next()) { - var s = a.value; - this.exec(s, t, e); - } - } catch (t) { - n = { - error: t - }; - } finally { - try { - a && !a.done && (i = o["return"]) && i.call(o); - } finally { - if (n) throw n.error; - } - } - }, n.prototype.update = function (t, e) { - var n, - i, - o, - a, - s, - c, - u, - h, - f = this; - if (t._sessionid = this.sessionId, this._state = t, this.options.execute && this.execute(this.state), this.children.forEach(function (t) { - f.state.children[t.id] = t; - }), this.devTools && this.devTools.send(e.data, t), t.event) try { - for (var l = r(this.eventListeners), d = l.next(); !d.done; d = l.next()) { - (0, d.value)(t.event); - } - } catch (t) { - n = { - error: t - }; - } finally { - try { - d && !d.done && (i = l["return"]) && i.call(l); - } finally { - if (n) throw n.error; + if (!isNaN(k)) { + _this4._hintsNodeList.push({ + node: n, + after: k + }); + } + } + } + })(); + } } - } + }); // console.log(this.data); - try { - for (var p = r(this.listeners), v = p.next(); !v.done; v = p.next()) { - (0, v.value)(t, t.event); - } - } catch (t) { - o = { - error: t - }; - } finally { - try { - v && !v.done && (a = p["return"]) && a.call(p); - } finally { - if (o) throw o.error; - } - } + console.log('resource perload finish'); // <<<<<<< HEAD + // ======= + // if (window && window["air"]) { + // // cc.find('Canvas').opacity = 0; + // window.air.onCourseInScreen = (next) => { + // // cc.find('Canvas').opacity = 255; + // this.loadEnd(); + // next(); + // } + // window.air.hideAirClassLoading(); + // } else { + // this.loadEnd(); + // } + // >>>>>>> 2d461e1910571bcfc6ad4dc93c2cedafc20923ea - try { - for (var y = r(this.contextListeners), g = y.next(); !g.done; g = y.next()) { - (0, g.value)(this.state.context, this.state.history ? this.state.history.context : void 0); - } - } catch (t) { - s = { - error: t - }; - } finally { - try { - g && !g.done && (c = y["return"]) && c.call(y); - } finally { - if (s) throw s.error; - } - } + cc.debug.setDisplayStats(false); + }); + }, + loadEnd: function loadEnd() { + if (window && window["air"] && window["air"].hideAirClassLoading) { + window["air"].hideAirClassLoading(); + } - var m = H(t.configuration || [], this.machine); + this.initData(); // this.initAudio(); + // this.initView(); - if (this.state.configuration && m) { - var S = t.configuration.find(function (t) { - return "final" === t.type && t.parent === f.machine; - }), - w = S && S.doneData ? x(S.doneData, t.context, e) : void 0; + this.initBg(); // this.initListener(); - try { - for (var b = r(this.doneListeners), _ = b.next(); !_.done; _ = b.next()) { - (0, _.value)(Nt(this.id, w)); - } - } catch (t) { - u = { - error: t - }; - } finally { - try { - _ && !_.done && (h = b["return"]) && h.call(b); - } finally { - if (u) throw u.error; - } - } - - this.stop(); - } - }, n.prototype.onTransition = function (e) { - return this.listeners.add(e), this.status === t.InterpreterStatus.Running && e(this.state, this.state.event), this; - }, n.prototype.subscribe = function (e, n, r) { - var i, - o = this; - if (!e) return { - unsubscribe: function unsubscribe() {} - }; - var a = r; - return "function" == typeof e ? i = e : (i = e.next.bind(e), a = e.complete.bind(e)), this.listeners.add(i), this.status === t.InterpreterStatus.Running && i(this.state), a && this.onDone(a), { - unsubscribe: function unsubscribe() { - i && o.listeners["delete"](i), a && o.doneListeners["delete"](a); - } - }; - }, n.prototype.onEvent = function (t) { - return this.eventListeners.add(t), this; - }, n.prototype.onSend = function (t) { - return this.sendListeners.add(t), this; - }, n.prototype.onChange = function (t) { - return this.contextListeners.add(t), this; - }, n.prototype.onStop = function (t) { - return this.stopListeners.add(t), this; - }, n.prototype.onDone = function (t) { - return this.doneListeners.add(t), this; - }, n.prototype.off = function (t) { - return this.listeners["delete"](t), this.eventListeners["delete"](t), this.sendListeners["delete"](t), this.stopListeners["delete"](t), this.doneListeners["delete"](t), this.contextListeners["delete"](t), this; - }, n.prototype.start = function (e) { - var n = this; - if (this.status === t.InterpreterStatus.Running) return this; - $t(this.sessionId, this), this.initialized = !0, this.status = t.InterpreterStatus.Running; - var r = void 0 === e ? this.initialState : jt(this, function () { - return !A(t = e) && "value" in t && "history" in t ? n.machine.resolveState(e) : n.machine.resolveState(kt.from(e, n.machine.context)); - var t; - }); - return this.options.devTools && this.attachDev(), this.scheduler.initialize(function () { - n.update(r, ht); - }), this; - }, n.prototype.stop = function () { - var e, - n, - i, - o, - a, - c, - u, - h, - f, - l, - d = this; + this.debugGraphics(); + this.createStateMachine(); + }, + _cantouch: null, + initData: function initData() { + // 所有全局å˜é‡ 默认都是null + this._cantouch = true; + }, + // audioBtn: null, + // initAudio() { + // const audioNode = cc.find('Canvas/res/audio'); + // const getAudioByResName = (resName) => { + // return audioNode.getChildByName(resName).getComponent(cc.AudioSource); + // } + // this.audioBtn = getAudioByResName('btn'); + // }, + // initView() { + // // this.initBg(); + // // this.initPic(); + // // this.initBtn(); + // this.initIcon(); + // }, + addRectNodeListener: function addRectNodeListener(data) { + var _this5 = this; - try { - for (var p = r(this.listeners), v = p.next(); !v.done; v = p.next()) { - var y = v.value; - this.listeners["delete"](y); - } - } catch (t) { - e = { - error: t - }; - } finally { - try { - v && !v.done && (n = p["return"]) && n.call(p); - } finally { - if (e) throw e.error; - } - } + var bg = cc.find("Canvas/frame-border/ground/bg").parent; + var rate = bg.scale * bg.width / this.data.bgItem.rect.width; + var rectNode = new cc.Node(); + rectNode.name = 'rect' + data.index; + bg.addChild(rectNode, 20); + var ctx = rectNode.addComponent(cc.Graphics); // 红色矩形 - try { - for (var g = r(this.stopListeners), m = g.next(); !m.done; m = g.next()) { - (y = m.value)(), this.stopListeners["delete"](y); - } - } catch (t) { - i = { - error: t - }; - } finally { - try { - m && !m.done && (o = g["return"]) && o.call(g); - } finally { - if (i) throw i.error; - } - } + ctx.lineWidth = 4; + ctx.strokeColor = cc.Color.BLACK; + ctx.fillColor = cc.Color.WHITE.setA(100); + var scale = rate / bg.scaleY; + console.log('scale~ : ', scale); + rectNode.width = data.rect.width * scale; + rectNode.height = data.rect.height * scale; + rectNode.x = -bg.width / 2 + data.rect.x * scale + bg.x; + rectNode.y = bg.height / 2 - data.rect.height * scale - data.rect.y * scale + bg.y; + rectNode.anchorX = rectNode.anchorY = 0; + console.log('data: ', data); + console.log('rectNode: ', rectNode); // if (pageData.bgItem.isShowDebugLine) { - try { - for (var S = r(this.contextListeners), x = S.next(); !x.done; x = S.next()) { - y = x.value; - this.contextListeners["delete"](y); - } - } catch (t) { - a = { - error: t - }; - } finally { - try { - x && !x.done && (c = S["return"]) && c.call(S); - } finally { - if (a) throw a.error; - } - } + ctx.rect(0, 0, rectNode.width, rectNode.height); // ctx.fillRect(0, 0, 200, 200); + // } - try { - for (var w = r(this.doneListeners), b = w.next(); !b.done; b = w.next()) { - y = b.value; - this.doneListeners["delete"](y); - } - } catch (t) { - u = { - error: t - }; - } finally { - try { - b && !b.done && (h = w["return"]) && h.call(w); - } finally { - if (u) throw u.error; - } - } + ctx.stroke(); + ctx.fill(); + rectNode.addComponent(cc.Button); + rectNode.on("click", function () { + console.log(" in rectNode click"); - if (!this.initialized) return this; - this.state.configuration.forEach(function (t) { - var e, n; + var _x = rectNode.x / bg.width; - try { - for (var i = r(t.definition.exit), o = i.next(); !o.done; o = i.next()) { - var a = o.value; - d.exec(a, d.state); - } - } catch (t) { - e = { - error: t - }; - } finally { - try { - o && !o.done && (n = i["return"]) && n.call(i); - } finally { - if (e) throw e.error; - } - } - }), this.children.forEach(function (t) { - N(t.stop) && t.stop(); - }); + var _y = rectNode.y / bg.height; - try { - for (var _ = r(s(this.delayedEventsMap)), E = _.next(); !E.done; E = _.next()) { - var T = E.value; - this.clock.clearTimeout(this.delayedEventsMap[T]); - } - } catch (t) { - f = { - error: t - }; - } finally { - try { - E && !E.done && (l = _["return"]) && l.call(_); - } finally { - if (f) throw f.error; - } - } + var _w = rectNode.width / bg.width; - return this.scheduler.clear(), this.initialized = !1, this.status = t.InterpreterStatus.Stopped, Ht(this.sessionId), this; - }, n.prototype.batch = function (n) { - var a = this; - if (this.status === t.InterpreterStatus.NotStarted && this.options.deferEvents) ;else if (this.status !== t.InterpreterStatus.Running) throw new Error("".concat(n.length, ' event(s) were sent to uninitialized service "').concat(this.machine.id, '". Make sure .start() is called for this service, or set { deferEvents: true } in the service options.')); - this.scheduler.schedule(function () { - var t, - s, - c = a.state, - u = !1, - h = [], - f = function f(t) { - var n = L(t); - a.forward(n), c = jt(a, function () { - return a.machine.transition(c, n); - }), h.push.apply(h, o([], i(c.actions.map(function (t) { - return r = c, i = (n = t).exec, _e(_e({}, n), { - exec: void 0 !== i ? function () { - return i(r.context, r.event, { - action: n, - state: r, - _event: r._event - }); - } : void 0 - }); - var n, r, i; - })), !1)), u = u || !!c.changed; - }; + var _h = rectNode.height / bg.height; - try { - for (var l = r(n), d = l.next(); !d.done; d = l.next()) { - f(d.value); - } - } catch (e) { - t = { - error: e - }; - } finally { - try { - d && !d.done && (s = l["return"]) && s.call(l); - } finally { - if (t) throw t.error; - } - } + var pos = { + x: _x + _w / 2 + 0.5, + y: -(_y + _h / 2 - 0.5) + }; + _this5._lastFingerPosition = { + pos: pos, + dirty: true + }; + }); + }, + initBg: function initBg() { + var bgNode = cc.find('Canvas/bg'); + bgNode.scale = this._mapScaleMax; + console.log('this._mapScaleMax', this._mapScaleMax); + }, - c.changed = u, c.actions = h, a.update(c, L(n[n.length - 1])); - }); - }, n.prototype.sender = function (t) { - return this.send.bind(this, t); - }, n.prototype.nextState = function (t) { - var e = this, - n = L(t); - if (0 === n.name.indexOf(ot) && !this.state.nextEvents.some(function (t) { - return 0 === t.indexOf(ot); - })) throw n.data.data; - return jt(this, function () { - return e.machine.transition(e.state, n); - }); - }, n.prototype.forward = function (t) { - var e, n; + /*initBtn() { + this.curPage = 0; + const bottomPart = cc.find('Canvas/bottomPart'); + bottomPart.zIndex = 5; // æé«˜å±‚级 + bottomPart.x = bottomPart.parent.width / 2; + bottomPart.y = -bottomPart.parent.height / 2; + const leftBtnNode = bottomPart.getChildByName('btn_left'); + //èŠ‚ç‚¹ä¸æ·»åŠ äº†button组件 则å¯ä»¥æ·»åŠ clickäº‹ä»¶ç›‘å¬ + leftBtnNode.on('click', () => { + if (!this._cantouch) { + return; + } + if (this.curPage == 0) { + return; + } + this.curPage = 0 + this.leftMove(); + // 游æˆç»“æŸæ—¶éœ€è¦è°ƒç”¨è¿™ä¸ªæ–¹æ³•é€šçŸ¥ç³»ç»Ÿä½œä¸šå®Œæˆ + onHomeworkFinish(); + cc.audioEngine.play(this.audioBtn.clip, false, 0.8) + }) + const rightBtnNode = bottomPart.getChildByName('btn_right'); + //èŠ‚ç‚¹ä¸æ·»åŠ äº†button组件 则å¯ä»¥æ·»åŠ clickäº‹ä»¶ç›‘å¬ + rightBtnNode.on('click', () => { + if (!this._cantouch) { + return; + } + if (this.curPage == 1) { + return; + } + this.curPage = 1 + this.rightMove(); + cc.audioEngine.play(this.audioBtn.clip, false, 0.5) + }) + },*/ + // update (dt) {}, + _timeoutIds: null, + _intervalIds: null, + // 生命周期 + onDestroy: function onDestroy() { + console.log('op15 onDestroy'); - try { - for (var i = r(this.forwardTo), o = i.next(); !o.done; o = i.next()) { - var a = o.value, - s = this.children.get(a); - if (!s) throw new Error("Unable to forward event '".concat(t, "' from interpreter '").concat(this.id, "' to nonexistant child '").concat(a, "'.")); - s.send(t); - } - } catch (t) { - e = { - error: t - }; - } finally { - try { - o && !o.done && (n = i["return"]) && n.call(i); - } finally { - if (e) throw e.error; - } - } - }, n.prototype.defer = function (t) { - var e = this; - this.delayedEventsMap[t.id] = this.clock.setTimeout(function () { - t.to ? e.sendTo(t._event, t.to) : e.send(t._event); - }, t.delay); - }, n.prototype.cancel = function (t) { - this.clock.clearTimeout(this.delayedEventsMap[t]), delete this.delayedEventsMap[t]; - }, n.prototype.exec = function (e, n, r) { - void 0 === r && (r = this.machine.options.actions); - var i = n.context, - o = n._event, - a = e.exec || ft(e.type, r), - s = N(a) ? a : a ? a.exec : e.exec; - if (s) try { - return s(i, o.data, { - action: e, - state: this.state, - _event: o - }); - } catch (t) { - throw this.parent && this.parent.send({ - type: "xstate.error", - data: t - }), t; - } + this._timeoutIds.forEach(function (id) { + clearTimeout(id); + }); - switch (e.type) { - case Y: - var c = e; - if ("number" == typeof c.delay) return void this.defer(c); - c.to ? this.sendTo(c._event, c.to) : this.send(c._event); - break; + this._intervalIds.forEach(function (id) { + clearInterval(id); + }); - case Z: - this.cancel(e.sendId); - break; + this.gameMachineService.stopChild(); + this.gameMachineService.stop(); - case K: - var u = e.activity; - if (!this.state.activities[u.id || u.type]) break; + if (window.courseware && window.courseware.closeOsmoFingerRead) { + if (this.isOpenedOsmoFingerRead) { + window.courseware.closeOsmoFingerRead(); + } + } + } +}); - if (u.type === t.ActionTypes.Invoke) { - var h = M(u.src), - f = this.machine.options.services ? this.machine.options.services[h.type] : void 0, - l = u.id, - d = u.data, - p = "autoForward" in u ? u.autoForward : !!u.forward; - if (!f) return; - var v = d ? x(d, i, o) : void 0; - if ("string" == typeof f) return; - var y = N(f) ? f(i, o.data, { - data: v, - src: h, - meta: u.meta - }) : f; - if (!y) return; - var g = void 0; - k(y) && (y = v ? y.withContext(v) : y, g = { - autoForward: p - }), this.spawn(y, l, g); - } else this.spawnActivity(u); +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0cy9PUDE1L3NjZW5lL09QMTUuanMiXSwibmFtZXMiOlsicHVyZSIsImFjdGlvbnMiLCJzZW5kIiwicmFpc2UiLCJzZW5kUGFyZW50IiwiY2MiLCJDbGFzcyIsIkNvbXBvbmVudCIsInByb3BlcnRpZXMiLCJyaWdodEF1ZGlvIiwidHlwZSIsIkF1ZGlvQ2xpcCIsIndyb25nQXVkaW8iLCJsb2dvQ2F0IiwiTm9kZSIsInBsYXlBbmkiLCJpZHgiLCJuYW1lIiwib3B0aW9ucyIsInRpbWVzIiwiY2IiLCJjYWxsYmFjayIsIm5vZGUiLCJfZmlndXJlUG9pbnRSZWN0QXJyYXkiLCJkcmFnb25EaXNwbGF5IiwiZ2V0Q29tcG9uZW50IiwiZHJhZ29uQm9uZXMiLCJBcm1hdHVyZURpc3BsYXkiLCJzdGF0ZSIsInBsYXlBbmltYXRpb24iLCJvbkxvYWQiLCJfdGltZW91dElkcyIsIl9pbnRlcnZhbElkcyIsImluaXRTY2VuZURhdGEiLCJpbml0U2l6ZSIsIndpbmRvdyIsImNjYyIsIl9pbWFnZVJlc0xpc3QiLCJfYXVkaW9SZXNMaXN0IiwiX2FuaW1hUmVzTGlzdCIsIl9sYXN0RmluZ2VyUG9zaXRpb24iLCJfaGludHNOb2RlTGlzdCIsIl9hbGxBbmltYXRpb25Ob2RlcyIsInBvcyIsImRpcnR5IiwiX2Rlc2lnblNpemUiLCJfZnJhbWVTaXplIiwiX21hcFNjYWxlTWluIiwiX21hcFNjYWxlTWF4IiwiX2NvY29zU2NhbGUiLCJzY3JlZW5fc2l6ZSIsInZpZXciLCJnZXRGcmFtZVNpemUiLCJ3aWR0aCIsImhlaWdodCIsImRlc2lnbl9zaXplIiwiQ2FudmFzIiwiaW5zdGFuY2UiLCJkZXNpZ25SZXNvbHV0aW9uIiwiZiIsImZpdEhlaWdodCIsImZpdFdpZHRoIiwiZnJhbWVTaXplIiwiZ2V0RGVzaWduUmVzb2x1dGlvblNpemUiLCJzeCIsIndpblNpemUiLCJzeSIsIk1hdGgiLCJtaW4iLCJtYXgiLCJjcmVhdGVTdGF0ZU1hY2hpbmUiLCJjaGVjayIsInRhcmdldCIsImNvbmQiLCJjdHgiLCJldnQiLCJjb25zb2xlIiwibG9nIiwicXVlc3Rpb25JbmRleCIsInF1ZXN0aW9uc0NvdW50IiwiUXVlc3Rpb25TdGF0ZSIsImlkIiwiaW5pdGlhbCIsInN0YXRlcyIsImhpbnQiLCJpbnZva2UiLCJzcmMiLCJldmVudCIsInF1ZXN0aW9uUGxheVRpbWVzIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJxdWVzdGlvbnMiLCJhdWRpb191cmwiLCJvbkRvbmUiLCJvbkVycm9yIiwiYW5zd2VyIiwiYWZ0ZXIiLCJjb250ZXh0Iiwib25SZWNlaXZlIiwic2V0SW50ZXJ2YWwiLCJyZWdpb24iLCJyZXN1bHQiLCJjaGVja0luUmVnaW9uIiwicmVjdCIsInB1c2giLCJjbGVhckludGVydmFsIiwib24iLCJSSUdIVCIsIldST05HIiwicmlnaHQiLCJhbiIsImFjdGl2ZSIsImlzU3BpbmUiLCJza2VsZXRvbiIsInNwIiwiU2tlbGV0b24iLCJzZXRUb1NldHVwUG9zZSIsInNldFRpbWVvdXQiLCJzZXRBbmltYXRpb24iLCJkZExvZ29DYXQiLCJvbmNlIiwiRXZlbnRPYmplY3QiLCJDT01QTEVURSIsIndyb25nIiwibWF4UXVlc3Rpb25UcnlUaW1lcyIsIndyb25nRWZmZWN0IiwiaW5jbHVkZXMiLCJkYXRhIiwiUXVlc3Rpb25zQXJyYXlTdGF0dXMiLCJwbGF5IiwibmV4dCIsIkNIRUNLIiwibGVuZ3RoIiwiYmVnaW4iLCJjb3Vyc2V3YXJlIiwib3Blbk9zbW9GaW5nZXJSZWFkIiwiaXNPcGVuZWRPc21vRmluZ2VyUmVhZCIsImJlZ2luX2F1ZGlvIiwiZ3VpZGUiLCJndWlkZV9hdWRpbyIsInBsYXlpbmciLCJlbnRyeSIsImFzc2V0TWFuYWdlciIsImxvYWRSZW1vdGUiLCJwbGF5aW5nX2F1ZGlvIiwiZXJyIiwiYXVkaW9DbGlwIiwiYXVkaW9FbmdpbmUiLCJwbGF5TXVzaWMiLCJmb3JFYWNoIiwiYmxvY2siLCJleGl0Iiwic3RvcE11c2ljIiwiTkVYVCIsImVuZCIsImNsb3NlT3Ntb0ZpbmdlclJlYWQiLCJlbmRfYXVkaW8iLCJpIiwidCIsImsiLCJfYXJtYXR1cmVLZXkiLCJhZGRFdmVudExpc3RlbmVyIiwiYmVnaW5fc2VwX3RpbWUiLCJnYW1lTWFjaGluZSIsImdhbWVNYWNoaW5lU2VydmljZSIsIm9uVHJhbnNpdGlvbiIsInN0YXJ0IiwiZ2V0RGF0YSIsImJpbmQiLCJnZXREZWZhdWx0RGF0YSIsIkpTT04iLCJwYXJzZSIsInN0cmluZ2lmeSIsInByZWxvYWRJdGVtIiwiYWlyIiwib3Ntb0ZpbmdlclJlYWRDYWxsYmFjayIsInJlc3VsdE9iaiIsImZpbmdlcl9wb3NfaW5fcGFnZSIsInAiLCJ4IiwieSIsImRlYnVnUG9pbnRlciIsImlzRGVidWciLCJyIiwidyIsImgiLCJmdW5jIiwibWlkZGxlTGF5ZXIiLCJmaW5kIiwibWlkZGxlTGF5ZXJDb21wb25lbnQiLCJhZGRQcmVsb2FkSW1hZ2UiLCJhZGRQcmVsb2FkQXVkaW8iLCJhZGRQcmVsb2FkQW5pbWEiLCJwcmVsb2FkIiwidXJsIiwiYmdJdGVtIiwiaG90Wm9uZUl0ZW1BcnIiLCJxIiwiZ0lkeCIsInRleFBuZ0RhdGEiLCJwaWNfdXJsIiwicHJlcGFyZUF1ZGlvQ2xpcCIsImtleSIsIndyb25nX2F1ZGlvIiwicmlnaHRfYXVkaW8iLCJ3cm9uZ19hdWRpbzEiLCJ3cm9uZ19hdWRpbzIiLCJib3hEZWJ1Z2dlciIsIlBPSU5URVJfTk9ERSIsInBhcmVudCIsImFkZENvbXBvbmVudCIsIkdyYXBoaWNzIiwiZ3JhcCIsImNsZWFyIiwiZ3JvdW5kIiwiYmFzZVciLCJiYXNlSCIsInB4IiwicHkiLCJwbiIsImZpbGxDb2xvciIsImNvbG9yIiwiY2lyY2xlIiwiZmlsbCIsInN0cm9rZSIsImRlYnVnR3JhcGhpY3MiLCJjYW52YXMiLCJiZ1ciLCJiZ0giLCJzY2FsZVgiLCJzY2FsZVkiLCJhZGRlZCIsImFyZWEiLCJkbiIsImxibE5vZGUiLCJsYmwiLCJMYWJlbCIsInN0cmluZyIsInNrZUpzb25EYXRhIiwic3Vic3RyaW5nIiwiZyIsImIiLCJyeCIsInJ5IiwicnciLCJyaCIsImZpbGxSZWN0IiwicHJlbG9hZEFyciIsImNvbmNhdCIsImxvYWRBbnkiLCJpdGVtIiwiZ3JvdW5kQmciLCJiYXNlUmVjdCIsInNmIiwiZ3MiLCJTcHJpdGUiLCJzcHJpdGVGcmFtZSIsImRiQ291bnQiLCJmaW5pc2hEYkNvdW50IiwiczEiLCJpbWdTaXplVyIsImltZ1NpemVIIiwic3ByIiwic2NhbGUiLCJuIiwiYW5pbVR5cGUiLCJ0ZXgiLCJhdGxhcyIsInRleEpzb25EYXRhIiwic2tlIiwidGhlbiIsImxvYWRFbmQiLCJkYiIsInJlY3RJbmZvIiwibGFiZWxUZXh0IiwiaXNOYU4iLCJkZWJ1ZyIsInNldERpc3BsYXlTdGF0cyIsImhpZGVBaXJDbGFzc0xvYWRpbmciLCJpbml0RGF0YSIsImluaXRCZyIsIl9jYW50b3VjaCIsImFkZFJlY3ROb2RlTGlzdGVuZXIiLCJiZyIsInJhdGUiLCJyZWN0Tm9kZSIsImluZGV4IiwiYWRkQ2hpbGQiLCJsaW5lV2lkdGgiLCJzdHJva2VDb2xvciIsIkNvbG9yIiwiQkxBQ0siLCJXSElURSIsInNldEEiLCJhbmNob3JYIiwiYW5jaG9yWSIsIkJ1dHRvbiIsIl94IiwiX3kiLCJfdyIsIl9oIiwiYmdOb2RlIiwib25EZXN0cm95IiwiY2xlYXJUaW1lb3V0Iiwic3RvcENoaWxkIiwic3RvcCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7OztJQUNRQSxPQUFvQ0MsZ0JBQXBDRDtJQUFPRSxPQUE2QkQsZ0JBQTdCQztJQUFNQyxRQUF1QkYsZ0JBQXZCRTtJQUFPQyxhQUFnQkgsZ0JBQWhCRztBQUc1QkMsRUFBRSxDQUFDQyxLQUFILENBQVM7QUFFUixhQUFTRCxFQUFFLENBQUNFLFNBRko7QUFJUkMsRUFBQUEsVUFBVSxFQUFFO0FBQ1g7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FB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QUUsSUE3bkNMO0FBOG5DUkMsRUFBQUEsWUFBWSxFQUFFLElBOW5DTjtBQStuQ1I7QUFDQStRLEVBQUFBLFNBaG9DUSx1QkFnb0NJO0FBQ1huTyxJQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBWSxnQkFBWjs7QUFDQSxTQUFLOUMsV0FBTCxDQUFpQnVILE9BQWpCLENBQXlCLFVBQUFyRSxFQUFFLEVBQUk7QUFDOUIrTixNQUFBQSxZQUFZLENBQUMvTixFQUFELENBQVo7QUFDQSxLQUZEOztBQUdBLFNBQUtqRCxZQUFMLENBQWtCc0gsT0FBbEIsQ0FBMEIsVUFBQXJFLEVBQUUsRUFBSTtBQUMvQnlCLE1BQUFBLGFBQWEsQ0FBQ3pCLEVBQUQsQ0FBYjtBQUNBLEtBRkQ7O0FBR0EsU0FBS29GLGtCQUFMLENBQXdCNEksU0FBeEI7QUFDQSxTQUFLNUksa0JBQUwsQ0FBd0I2SSxJQUF4Qjs7QUFDQSxRQUFHL1EsTUFBTSxDQUFDb0csVUFBUCxJQUFxQnBHLE1BQU0sQ0FBQ29HLFVBQVAsQ0FBa0JxQixtQkFBMUMsRUFBK0Q7QUFDOUQsVUFBSSxLQUFLbkIsc0JBQVQsRUFBaUM7QUFDaEN0RyxRQUFBQSxNQUFNLENBQUNvRyxVQUFQLENBQWtCcUIsbUJBQWxCO0FBQ0E7QUFDRDtBQUNEO0FBL29DTyxDQUFUIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBvbkhvbWV3b3JrRmluaXNoLCBSYW5kb21JbnQsIHBsYXlBdWRpb0J5VXJsLCBsb2FkRHJhZ29uQm9uZXMsIGdldFNwcml0ZUZyaW1lQnlVcmwsIGxvYWRTcGluZSB9IGZyb20gXCIuLi9zY3JpcHQvdXRpbFwiO1xuaW1wb3J0IHsgZGVmYXVsdERhdGEgfSBmcm9tIFwiLi4vc2NyaXB0L2RlZmF1bHREYXRhXCI7XG5pbXBvcnQgeyBhc3NpZ24sIGNyZWF0ZU1hY2hpbmUsIGludGVycHJldCwgYWN0aW9ucywgZm9yd2FyZFRvLCBtYXRjaGVzU3RhdGUgIH0gZnJvbSBcIi4uL3NjcmlwdC94c3RhdGVcIjtcbmNvbnN0IHsgcHVyZSAsIHNlbmQsIHJhaXNlLCBzZW5kUGFyZW50ICB9ID0gYWN0aW9ucztcblxuXG5jYy5DbGFzcyh7XG5cblx0ZXh0ZW5kczogY2MuQ29tcG9uZW50LFxuXG5cdHByb3BlcnRpZXM6IHtcblx0XHQvKmFudDoge1xuXHRcdFx0ZGVmYXVsdDogbnVsbCxcblx0XHRcdHR5cGU6IGNjLk5vZGUsXG5cdFx0fSxcblx0XHRhcHBsZToge1xuXHRcdFx0ZGVmYXVsdDogbnVsbCxcblx0XHRcdHR5cGU6IGNjLk5vZGUsXG5cdFx0fSxcblx0XHRiaXJkOiB7XG5cdFx0XHRkZWZhdWx0OiBudWxsLFxuXHRcdFx0dHlwZTogY2MuTm9kZSxcblx0XHR9LFxuXHRcdGNhcjoge1xuXHRcdFx0ZGVmYXVsdDogbnVsbCxcblx0XHRcdHR5cGU6IGNjLk5vZGUsXG5cdFx0fSxcblx0XHRjYXQ6IHtcblx0XHRcdGRlZmF1bHQ6IG51bGwsXG5cdFx0XHR0eXBlOiBjYy5Ob2RlLFxuXHRcdH0sXG5cdFx0Y293OiB7XG5cdFx0XHRkZWZhdWx0OiBudWxsLFxuXHRcdFx0dHlwZTogY2MuTm9kZSxcblx0XHR9LFxuXHRcdGR1Y2s6IHtcblx0XHRcdGRlZmF1bHQ6IG51bGwsXG5cdFx0XHR0eXBlOiBjYy5Ob2RlLFxuXHRcdH0sXG5cdFx0ZWdnOiB7XG5cdFx0XHRkZWZhdWx0OiBudWxsLFxuXHRcdFx0dHlwZTogY2MuTm9kZSxcblx0XHR9LFxuXHRcdGZhcm1lcjoge1xuXHRcdFx0ZGVmYXVsdDogbnVsbCxcblx0XHRcdHR5cGU6IGNjLk5vZGUsXG5cdFx0fSxcblx0XHRmaXNoOiB7XG5cdFx0XHRkZWZhdWx0OiBudWxsLFxuXHRcdFx0dHlwZTogY2MuTm9kZSxcblx0XHR9LFxuXHRcdGdpcmw6IHtcblx0XHRcdGRlZmF1bHQ6IG51bGwsXG5cdFx0XHR0eXBlOiBjYy5Ob2RlLFxuXHRcdH0sXG5cdFx0aGVuOiB7XG5cdFx0XHRkZWZhdWx0OiBudWxsLFxuXHRcdFx0dHlwZTogY2MuTm9kZSxcblx0XHR9LFxuXHRcdGhvdXNlOiB7XG5cdFx0XHRkZWZhdWx0OiBudWxsLFxuXHRcdFx0dHlwZTogY2MuTm9kZSxcblx0XHR9LCovXG5cdFx0cmlnaHRBdWRpbzoge1xuXHRcdFx0ZGVmYXVsdDogbnVsbCxcblx0XHRcdHR5cGU6IGNjLkF1ZGlvQ2xpcCxcblx0XHR9LFxuXHRcdHdyb25nQXVkaW86IHtcblx0XHRcdGRlZmF1bHQ6IG51bGwsXG5cdFx0XHR0eXBlOiBjYy5BdWRpb0NsaXAsXG5cdFx0fSxcblx0XHRsb2dvQ2F0OiB7XG5cdFx0XHRkZWZhdWx0OiBudWxsLFxuXHRcdFx0dHlwZTogY2MuTm9kZVxuXHRcdH1cblxuXHR9LFxuXG5cdHBsYXlBbmkoaWR4LCBuYW1lLCBvcHRpb25zKSB7XG5cdFx0Y29uc3QgdGltZXMgPSAob3B0aW9ucyAmJiBvcHRpb25zLnRpbWVzKSB8fCAxO1xuXHRcdGNvbnN0IGNiID0gKG9wdGlvbnMgJiYgb3B0aW9ucy5jYWxsYmFjaykgfHwgbnVsbDtcblx0XHQvLyBjb25zdCBjYXQgPSBjYy5maW5kKGBDYW52YXMvZnJhbWUtYm9yZGVyL2dyb3VuZC8ke25vZGV9YCk7XG5cdFx0Y29uc3Qgbm9kZSA9IHRoaXMuX2ZpZ3VyZVBvaW50UmVjdEFycmF5W2lkeF0ubm9kZVxuXHRcdHZhciBkcmFnb25EaXNwbGF5ID0gbm9kZS5nZXRDb21wb25lbnQoZHJhZ29uQm9uZXMuQXJtYXR1cmVEaXNwbGF5KTtcblxuXHRcdGNvbnN0IHN0YXRlID0gZHJhZ29uRGlzcGxheS5wbGF5QW5pbWF0aW9uKG5hbWUsIHRpbWVzKTtcblx0XHQvLyBkcmFnb25EaXNwbGF5LmFkZEV2ZW50TGlzdGVuZXIoZHJhZ29uQm9uZXMuRXZlbnRPYmplY3QuQ09NUExFVEUsIChldmVudCkgPT4ge1xuXHRcdC8vIFx0Ly9UT0RPIOi/memHjOWGmeinpuWPkeS6i+S7tlxuXHRcdC8vIFx0Ly9ldmVudC5uYW1l5Li65LqL5Lu25ZCN56ewXG5cdFx0Ly8gXHRjb25zb2xlLmxvZyhldmVudC5uYW1lKVxuXHRcdC8vIH0sIHRoaXMpO1xuXHRcdC8vIGFuaW1hdGlvbkRpc3BsYXkuYWRkRXZlbnRMaXN0ZW5lcihkcmFnb25Cb25lcy5FdmVudE9iamVjdC5DT01QTEVURSwgY29tcGxldGVDYWxsYmFjayk7XG5cdFx0cmV0dXJuIHN0YXRlO1xuXHR9LFxuXHQvLyDnlJ/lkb3lkajmnJ8gb25Mb2FkXG5cdG9uTG9hZCgpIHtcblx0XHR0aGlzLl90aW1lb3V0SWRzID0gW107XG5cdFx0dGhpcy5faW50ZXJ2YWxJZHMgPSBbXTtcblx0XHR0aGlzLmluaXRTY2VuZURhdGEoKTtcblx0XHR0aGlzLmluaXRTaXplKCk7XG5cdFx0d2luZG93LmNjYyA9IHRoaXM7XG5cdH0sXG5cblx0X2ltYWdlUmVzTGlzdDogbnVsbCxcblx0X2F1ZGlvUmVzTGlzdDogbnVsbCxcblx0X2FuaW1hUmVzTGlzdDogbnVsbCxcblxuXHRfbGFzdEZpbmdlclBvc2l0aW9uOiBudWxsLFxuXG5cdF9oaW50c05vZGVMaXN0IDogbnVsbCxcblx0X2ZpZ3VyZVBvaW50UmVjdEFycmF5OiBudWxsLFxuXG5cdF9hbGxBbmltYXRpb25Ob2RlczogbnVsbCxcblxuXHRpbml0U2NlbmVEYXRhKCkge1xuXHRcdHRoaXMuX2ltYWdlUmVzTGlzdCA9IFtdO1xuXHRcdHRoaXMuX2F1ZGlvUmVzTGlzdCA9IFtdO1xuXHRcdHRoaXMuX2FuaW1hUmVzTGlzdCA9IFtdO1xuXG5cdFx0dGhpcy5fYWxsQW5pbWF0aW9uTm9kZXMgPSBbXTtcblx0XHR0aGlzLl9oaW50c05vZGVMaXN0ID0gW107XG5cdFx0dGhpcy5fbGFzdEZpbmdlclBvc2l0aW9uPSB7XG5cdFx0XHRwb3M6IG51bGwsXG5cdFx0XHRkaXJ0eTogZmFsc2Vcblx0XHR9O1xuXHRcdHRoaXMuX2ZpZ3VyZVBvaW50UmVjdEFycmF5ID0gW107XG5cdH0sXG5cblx0X2Rlc2lnblNpemU6IG51bGwsICAvLyDorr7orqHliIbovqjnjodcblx0X2ZyYW1lU2l6ZTogbnVsbCwgIC8vIOWxj+W5leWIhui+qOeOh1xuXHRfbWFwU2NhbGVNaW46IG51bGwsICAvLyDlnLrmma/kuK3luLjnlKjnvKnmlL7vvIjlj5blpKflgLzvvIlcblx0X21hcFNjYWxlTWF4OiBudWxsLCAgLy8g5Zy65pmv5Lit5bi455So57yp5pS+77yI5Y+W5bCP5YC877yJXG5cdF9jb2Nvc1NjYWxlOiBudWxsLCAgLy8gY29jb3Mg6Ieq57yp5pS+IO+8iOi+g+WwkeeUqOWIsO+8iVxuXHRcblx0aW5pdFNpemUoKSB7XG5cdFx0Ly8g5rOo5oSPY2Mud2luU2l6ZeWPquacieWcqOmAgumFjeWQjijkv67mlLlmaXRIZWlnaHQvZml0V2lkdGjlkI4p5omN6IO96I635Y+W5Yiw5q2j56Gu55qE5YC8LOWboOatpOS9v+eUqGNjLmdldEZyYW1lU2l6ZSgp5p2l6I635Y+W5Yid5aeL55qE5bGP5bmV5aSn5bCPXG5cdFx0bGV0IHNjcmVlbl9zaXplID0gY2Mudmlldy5nZXRGcmFtZVNpemUoKS53aWR0aCAvIGNjLnZpZXcuZ2V0RnJhbWVTaXplKCkuaGVpZ2h0XG5cdFx0bGV0IGRlc2lnbl9zaXplID0gY2MuQ2FudmFzLmluc3RhbmNlLmRlc2lnblJlc29sdXRpb24ud2lkdGggLyBjYy5DYW52YXMuaW5zdGFuY2UuZGVzaWduUmVzb2x1dGlvbi5oZWlnaHRcblx0XHRsZXQgZiA9IHNjcmVlbl9zaXplID49IGRlc2lnbl9zaXplXG5cdFx0Y2MuQ2FudmFzLmluc3RhbmNlLmZpdEhlaWdodCA9IGZcblx0XHRjYy5DYW52YXMuaW5zdGFuY2UuZml0V2lkdGggPSAhZlxuXG5cdFx0Y29uc3QgZnJhbWVTaXplID0gY2Mudmlldy5nZXRGcmFtZVNpemUoKTtcblx0XHR0aGlzLl9mcmFtZVNpemUgPSBmcmFtZVNpemU7XG5cblx0XHR0aGlzLl9kZXNpZ25TaXplID0gY2Mudmlldy5nZXREZXNpZ25SZXNvbHV0aW9uU2l6ZSgpO1xuXG5cdFx0bGV0IHN4ID0gY2Mud2luU2l6ZS53aWR0aCAvIGZyYW1lU2l6ZS53aWR0aDtcblx0XHRsZXQgc3kgPSBjYy53aW5TaXplLmhlaWdodCAvIGZyYW1lU2l6ZS5oZWlnaHQ7XG5cdFx0dGhpcy5fY29jb3NTY2FsZSA9IE1hdGgubWluKHN4LCBzeSk7XG5cblx0XHRzeCA9IGZyYW1lU2l6ZS53aWR0aCAvIHRoaXMuX2Rlc2lnblNpemUud2lkdGg7XG5cdFx0c3kgPSBmcmFtZVNpemUuaGVpZ2h0IC8gdGhpcy5fZGVzaWduU2l6ZS5oZWlnaHQ7XG5cdFx0dGhpcy5fbWFwU2NhbGVNaW4gPSBNYXRoLm1pbihzeCwgc3kpICogdGhpcy5fY29jb3NTY2FsZTtcblx0XHR0aGlzLl9tYXBTY2FsZU1heCA9IE1hdGgubWF4KHN4LCBzeSkgKiB0aGlzLl9jb2Nvc1NjYWxlO1xuXHR9LFxuXHRjcmVhdGVTdGF0ZU1hY2hpbmUoKXtcblx0XHRjb25zdCBjaGVjayA9ICBbXG5cdFx0XHRcdFx0XHRcdHsgdGFyZ2V0OiAnI2dhbWUuZW5kJywgY29uZDogKGN0eCwgZXZ0KSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ1thbnN3ZXIgTkVYVF0gY2hlY2sgaWYgZW5kJywgY3R4LnF1ZXN0aW9uSW5kZXggPj0gY3R4LnF1ZXN0aW9uc0NvdW50IC0gMSk7XG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuIGN0eC5xdWVzdGlvbkluZGV4ID49IGN0eC5xdWVzdGlvbnNDb3VudCAtMVxuXG5cdFx0XHRcdFx0XHRcdH0gfSxcbiAgICAgICAgXHRcdFx0XHRcdHsgdGFyZ2V0OiAnaGludCcgfSAvLyByZWVudGVyICdoaW50JyBzdGF0ZVxuXHRcdFx0XHRcdFx0XVxuXHRcdGNvbnN0IFF1ZXN0aW9uU3RhdGUgPSB7XG5cdFx0XHRpZDogJ3F1ZXN0aW9uJyxcblx0XHRcdGluaXRpYWw6ICdoaW50Jyxcblx0XHRcdHN0YXRlczoge1xuXHRcdFx0XHRoaW50OiB7XG5cdFx0XHRcdFx0aW52b2tlOiB7XG5cdFx0XHRcdFx0XHRzcmM6IChjdHgsIGV2ZW50KSA9PiB7XG5cdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKGBbaGludF0gcGxheSBxdWVzdGlvbiAke2N0eC5xdWVzdGlvbkluZGV4fTogJHtjdHgucXVlc3Rpb25QbGF5VGltZXMgfSBhdWRpb2ApO1xuXHRcdFx0XHRcdFx0XHRjdHgucXVlc3Rpb25QbGF5VGltZXMgKz0gMTtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLHJlamVjdCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdHBsYXlBdWRpb0J5VXJsKGN0eC5xdWVzdGlvbnNbY3R4LnF1ZXN0aW9uSW5kZXhdLmF1ZGlvX3VybCwgKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ2hpbnQgZmluaXNoJyk7XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXNvbHZlKClcblx0XHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdG9uRG9uZTogJ2Fuc3dlcicsXG5cdFx0XHRcdFx0XHRvbkVycm9yOiAnYW5zd2VyJ1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSxcblx0XHRcdFx0YW5zd2VyOiB7XG5cdFx0XHRcdFx0YWZ0ZXI6IHtcblx0XHRcdFx0XHRcdDgwMDA6IFtcbiAgICAgICAgXHRcdFx0XHRcdHsgXG5cdFx0XHRcdFx0XHRcdFx0dGFyZ2V0OiAnd3JvbmcnLFxuXHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHR9IC8vIHJlZW50ZXIgJ2hpbnQnIHN0YXRlXG5cdFx0XHRcdFx0XHRdXG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdGludm9rZToge1xuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRzcmM6IChjb250ZXh0LCBldmVudCkgPT4gKGNhbGxiYWNrLCBvblJlY2VpdmUpID0+IHtcblx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdbYW5zd2VyXSB0aGlua2luZyBhbmQgcGxheWluZycpO1xuXHRcdFx0XHRcdFx0XHQvLyBjaGVjayBldmVyeSBzZWNvbmRcblx0XHRcdFx0XHRcdFx0Y29uc3QgaWQgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0aWYgKCF0aGlzLl9sYXN0RmluZ2VyUG9zaXRpb24uZGlydHkpIHtcblx0XHRcdFx0XHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0Y29uc3QgcmVnaW9uID0gY29udGV4dC5xdWVzdGlvbnNbY29udGV4dC5xdWVzdGlvbkluZGV4XTtcblx0XHRcdFx0XHRcdFx0XHRjb25zdCByZXN1bHQgPSB0aGlzLmNoZWNrSW5SZWdpb24ocmVnaW9uLnJlY3QpO1xuXHRcdFx0XHRcdFx0XHRcdGlmIChyZXN1bHQgPT09IG51bGwpIHtcblx0XHRcdFx0XHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ1tHZW5pc2UgSlNdIGNoZWNrSW5SZWdpb24nICsgcmVzdWx0KVxuXHRcdFx0XHRcdFx0XHRcdGlmIChyZXN1bHQpIHtcblx0XHRcdFx0XHRcdFx0XHRcdGNhbGxiYWNrKCdSSUdIVCcpXG5cdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdGNhbGxiYWNrKCdXUk9ORycpXG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9LCAxMDApO1xuXHRcdFx0XHRcdFx0XHR0aGlzLl9pbnRlcnZhbElkcy5wdXNoKGlkKTtcblx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0Ly8gUGVyZm9ybSBjbGVhbnVwXG5cdFx0XHRcdFx0XHRcdHJldHVybiAoKSA9PiBjbGVhckludGVydmFsKGlkKTtcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdG9uOiB7XG5cdFx0XHRcdFx0XHRSSUdIVDoge1xuXHRcdFx0XHRcdFx0XHR0YXJnZXQ6ICdyaWdodCcsXG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0V1JPTkc6IHtcblx0XHRcdFx0XHRcdFx0dGFyZ2V0OiAnd3JvbmcnLFxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSxcblx0XHRcdFx0XG5cdFx0XHRcdHJpZ2h0OiB7XG5cdFx0XHRcdFx0aW52b2tlOiB7XG5cdFx0XHRcdFx0XHRzcmM6IChjb250ZXh0LCBldmVudCkgPT4ge1xuXHRcdFx0XHRcdFx0XHR0aGlzLl9sYXN0RmluZ2VyUG9zaXRpb24ucG9zID0gbnVsbDtcblx0XHRcdFx0XHRcdFx0dGhpcy5fbGFzdEZpbmdlclBvc2l0aW9uLmRpcnR5ID0gZmFsc2U7XG5cdFx0XHRcdFx0XHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ2Fuc3dlciByaWdodCcpO1xuXHRcdFx0XHRcdFx0XHRcdC8vIHRoaXMucGxheUFuaShjb250ZXh0LnF1ZXN0aW9uSW5kZXgsICdub3JtYWwnKVxuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IGFuID0gY29udGV4dC5xdWVzdGlvbnNbY29udGV4dC5xdWVzdGlvbkluZGV4XS5ub2RlO1xuXHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdpbiByaWdodCAnICsgKHR5cGVvZiBhbikpXG5cdFx0XHRcdFx0XHRcdFx0YW4uYWN0aXZlID0gdHJ1ZTtcblxuXHRcdFx0XHRcdFx0XHRcdGlmIChhbi5pc1NwaW5lKSB7XG5cblx0XHRcdFx0XHRcdFx0XHRcdGNvbnN0IHNrZWxldG9uID0gYW4uZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKTtcblx0XHRcdFx0XHRcdFx0XHRcdHNrZWxldG9uLnNldFRvU2V0dXBQb3NlKCk7XG5cdFx0XHRcdFx0XHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0c2tlbGV0b24uc2V0QW5pbWF0aW9uKDAsICdub3JtYWwnLCB0cnVlKTtcblx0XHRcdFx0XHRcdFx0XHRcdH0sIDEpO1xuXHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdGNvbnN0IGRyYWdvbkRpc3BsYXkgPSBhbi5nZXRDb21wb25lbnQoZHJhZ29uQm9uZXMuQXJtYXR1cmVEaXNwbGF5KTtcblx0XHRcdFx0XHRcdFx0XHRcdGRyYWdvbkRpc3BsYXkucGxheUFuaW1hdGlvbignbm9ybWFsJywgMCk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdFx0Y29uc3QgZGRMb2dvQ2F0ID0gdGhpcy5sb2dvQ2F0LmdldENvbXBvbmVudChkcmFnb25Cb25lcy5Bcm1hdHVyZURpc3BsYXkpXG5cdFx0XHRcdFx0XHRcdFx0ZGRMb2dvQ2F0LnBsYXlBbmltYXRpb24oJ3JpZ2h0JywgMSlcblx0XHRcdFx0XHRcdFx0XHRkZExvZ29DYXQub25jZShkcmFnb25Cb25lcy5FdmVudE9iamVjdC5DT01QTEVURSwgZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLmxvZ29DYXQuZ2V0Q29tcG9uZW50KGRyYWdvbkJvbmVzLkFybWF0dXJlRGlzcGxheSkucGxheUFuaW1hdGlvbignbm9ybWFsJywgMClcblx0XHRcdFx0XHRcdFx0XHR9LCB0aGlzKVxuXG5cdFx0XHRcdFx0XHRcdFx0cGxheUF1ZGlvQnlVcmwodGhpcy5yaWdodEF1ZGlvLCAoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXNvbHZlKClcblx0XHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRvbkRvbmU6IHtcblx0XHRcdFx0XHRcdFx0dGFyZ2V0OiAnI1F1ZXN0aW9uc0FycmF5Lm5leHQnLFxuXHRcdFx0XHRcdFx0XHRhY3Rpb25zOiByYWlzZSgnQ0hFQ0snKVxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdG9uRXJyb3I6IHtcblx0XHRcdFx0XHRcdFx0dGFyZ2V0OiAnI1F1ZXN0aW9uc0FycmF5Lm5leHQnLFxuXHRcdFx0XHRcdFx0XHRhY3Rpb25zOiByYWlzZSgnQ0hFQ0snKVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSxcblx0XHRcdFx0d3Jvbmc6e1xuXHRcdFx0XHRcdGludm9rZToge1xuXHRcdFx0XHRcdFx0c3JjOiAoY29udGV4dCwgZXZlbnQpID0+IHtcblx0XHRcdFx0XHRcdFx0dGhpcy5fbGFzdEZpbmdlclBvc2l0aW9uLnBvcyA9IG51bGw7XG5cdFx0XHRcdFx0XHRcdHRoaXMuX2xhc3RGaW5nZXJQb3NpdGlvbi5kaXJ0eSA9IGZhbHNlO1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdhbnN3ZXIgd3JvbmcnLCBjb250ZXh0LnF1ZXN0aW9uSW5kZXgsIGNvbnRleHQucXVlc3Rpb25QbGF5VGltZXMgLCBjb250ZXh0Lm1heFF1ZXN0aW9uVHJ5VGltZXMpO1xuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IGRkTG9nb0NhdCA9IHRoaXMubG9nb0NhdC5nZXRDb21wb25lbnQoZHJhZ29uQm9uZXMuQXJtYXR1cmVEaXNwbGF5KVxuXHRcdFx0XHRcdFx0XHRcdGRkTG9nb0NhdC5wbGF5QW5pbWF0aW9uKCd3cm9uZycsIDEpXG5cdFx0XHRcdFx0XHRcdFx0ZGRMb2dvQ2F0Lm9uY2UoZHJhZ29uQm9uZXMuRXZlbnRPYmplY3QuQ09NUExFVEUsIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5sb2dvQ2F0LmdldENvbXBvbmVudChkcmFnb25Cb25lcy5Bcm1hdHVyZURpc3BsYXkpLnBsYXlBbmltYXRpb24oJ25vcm1hbCcsIDApXG5cdFx0XHRcdFx0XHRcdFx0fSwgdGhpcyk7XG5cdFx0XHRcdFx0XHRcdFx0bGV0IHdyb25nRWZmZWN0ID0gdGhpcy53cm9uZ0F1ZGlvO1xuXHRcdFx0XHRcdFx0XHRcdC8vIOesrOS4gOWSjOesrOS6jOmimOeahOaPkOekuumfs1xuXHRcdFx0XHRcdFx0XHRcdGlmIChbMCwgMV0uaW5jbHVkZXMoY29udGV4dC5xdWVzdGlvbkluZGV4KSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0d3JvbmdFZmZlY3QgPSB0aGlzLmRhdGFbYHdyb25nX2F1ZGlvJHtjb250ZXh0LnF1ZXN0aW9uUGxheVRpbWVzfWBdXG5cdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdC8vIOmdnuesrOS4gOWSjOesrOS6jOmimO+8jOW5tuS4lOWBmuesrOS6jOmBjeeahOaPkOekuumfs1xuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKGNvbnRleHQucXVlc3Rpb25QbGF5VGltZXMgPT0gMikge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR3cm9uZ0VmZmVjdCA9IHRoaXMuZGF0YVtgd3JvbmdfYXVkaW8ke2NvbnRleHQucXVlc3Rpb25QbGF5VGltZXN9YF1cblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHR9XG5cblxuXHRcdFx0XHRcdFx0XHRcdGlmIChjb250ZXh0LnF1ZXN0aW9uUGxheVRpbWVzID49IGNvbnRleHQubWF4UXVlc3Rpb25UcnlUaW1lcykge1xuXHRcdFx0XHRcdFx0XHRcdFx0Y29uc3QgYW4gPSBjb250ZXh0LnF1ZXN0aW9uc1tjb250ZXh0LnF1ZXN0aW9uSW5kZXhdLm5vZGU7XG5cdFx0XHRcdFx0XHRcdFx0XHRhbi5hY3RpdmUgPSB0cnVlO1xuXG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAoYW4uaXNTcGluZSkge1xuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGNvbnN0IHNrZWxldG9uID0gYW4uZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0c2tlbGV0b24uc2V0VG9TZXR1cFBvc2UoKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0c2tlbGV0b24uc2V0QW5pbWF0aW9uKDAsICdub3JtYWwnLCB0cnVlKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0fSwgMSk7XG5cdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0Y29uc3QgZHJhZ29uRGlzcGxheSA9IGFuLmdldENvbXBvbmVudChkcmFnb25Cb25lcy5Bcm1hdHVyZURpc3BsYXkpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRkcmFnb25EaXNwbGF5LnBsYXlBbmltYXRpb24oJ25vcm1hbCcsIDApO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnc2hvdyBhbmltYXRpb24nLCBhbi5hY3RpdmUpO1xuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRwbGF5QXVkaW9CeVVybCh3cm9uZ0VmZmVjdCwgKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKGNvbnRleHQucXVlc3Rpb25QbGF5VGltZXMgPj0gY29udGV4dC5tYXhRdWVzdGlvblRyeVRpbWVzKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIGNvbnN0IGFuID0gY29udGV4dC5xdWVzdGlvbnNbY29udGV4dC5xdWVzdGlvbkluZGV4XS5ub2RlO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBhbi5hY3RpdmUgPSB0cnVlO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBjb25zdCBkcmFnb25EaXNwbGF5ID0gYW4uZ2V0Q29tcG9uZW50KGRyYWdvbkJvbmVzLkFybWF0dXJlRGlzcGxheSk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIGRyYWdvbkRpc3BsYXkucGxheUFuaW1hdGlvbignbm9ybWFsJywgMCk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKCdzaG93IGFuaW1hdGlvbicsIGFuLmFjdGl2ZSk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHJlamVjdCgpXG5cdFx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRyZXNvbHZlKClcblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRvbkRvbmU6IHtcblx0XHRcdFx0XHRcdFx0dGFyZ2V0OiAnaGludCcsXG5cdFx0XHRcdFx0XHRcdC8vIGFjdGlvbnM6IHJhaXNlKCdDSEVDSycpXG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0b25FcnJvcjoge1xuXHRcdFx0XHRcdFx0XHR0YXJnZXQ6ICcjUXVlc3Rpb25zQXJyYXkubmV4dCcsXG5cdFx0XHRcdFx0XHRcdGFjdGlvbnM6IHJhaXNlKCdDSEVDSycpXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LFxuXHRcdFx0fVxuXHRcdH1cblx0XHRjb25zdCBRdWVzdGlvbnNBcnJheVN0YXR1cyA9IHtcblx0XHRcdGlkOiAnUXVlc3Rpb25zQXJyYXknLFxuXHRcdFx0aW5pdGlhbDogJ3BsYXknLFxuXHRcdFx0c3RhdGVzOiB7XG5cdFx0XHRcdHBsYXk6IHtcblx0XHRcdFx0XHQuLi5RdWVzdGlvblN0YXRlXG5cdFx0XHRcdH0sXG5cdFx0XHRcdG5leHQ6IHtcblx0XHRcdFx0XHRvbjoge1xuXHRcdFx0XHRcdFx0Q0hFQ0s6IFtcblx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdHRhcmdldDogJyNnYW1lLmVuZCcsXG5cdFx0XHRcdFx0XHRcdFx0Y29uZDogKGN0eCwgZXZ0KSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0XHRjdHgucXVlc3Rpb25JbmRleCArPSAxO1xuXHRcdFx0XHRcdFx0XHRcdFx0Y3R4LnF1ZXN0aW9uUGxheVRpbWVzID0gMFxuXHRcdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJyNnYW1lLmVuZCcsICBjdHgucXVlc3Rpb25JbmRleCA+PSBjdHgucXVlc3Rpb25zQ291bnQgKVxuXHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuIGN0eC5xdWVzdGlvbkluZGV4ID49IGN0eC5xdWVzdGlvbnNDb3VudFxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0e3RhcmdldDogJ3BsYXknfVxuXHRcdFx0XHRcdFx0XVxuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdFxuXHRcdGNvbnN0IHN0YXRlID0ge1xuXHRcdFx0aWQ6ICdnYW1lJyxcblx0XHRcdGluaXRpYWw6ICdiZWdpbicsXG5cdFx0XHRjb250ZXh0OiB7XG5cdFx0XHRcdHF1ZXN0aW9uSW5kZXg6IDAsXG5cdFx0XHRcdHF1ZXN0aW9uUGxheVRpbWVzOiAwLFxuXHRcdFx0XHRtYXhRdWVzdGlvblRyeVRpbWVzOiAyLFxuXHRcdFx0XHRxdWVzdGlvbnNDb3VudDogdGhpcy5fZmlndXJlUG9pbnRSZWN0QXJyYXkubGVuZ3RoLFxuXHRcdFx0XHRxdWVzdGlvbnM6IHRoaXMuX2ZpZ3VyZVBvaW50UmVjdEFycmF5LFxuXHRcdFx0fSxcblx0XHRcdHN0YXRlczoge1xuXHRcdFx0XHRiZWdpbjoge1xuXHRcdFx0XHRcdGludm9rZToge1xuXHRcdFx0XHRcdFx0c3JjOiAoY3R4KSA9PiB7XG5cdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdnYW1lIGJlZ2luIDEnKTtcblx0XHRcdFx0XHRcdFx0aWYod2luZG93LmNvdXJzZXdhcmUgJiYgd2luZG93LmNvdXJzZXdhcmUub3Blbk9zbW9GaW5nZXJSZWFkKSB7XG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5pc09wZW5lZE9zbW9GaW5nZXJSZWFkID0gdHJ1ZTtcblx0XHRcdFx0XHRcdFx0XHR3aW5kb3cuY291cnNld2FyZS5vcGVuT3Ntb0ZpbmdlclJlYWQoe1xuXHRcdFx0XHRcdFx0XHRcdFx0XCJwYWdlX2lkXCI6IDI3LFxuXHRcdFx0XHRcdFx0XHRcdFx0XCJib29rX2lkXCI6IFwib3B3MVwiXG5cdFx0XHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR2YXIgZHJhZ29uRGlzcGxheSA9IHRoaXMubG9nb0NhdC5nZXRDb21wb25lbnQoZHJhZ29uQm9uZXMuQXJtYXR1cmVEaXNwbGF5KTtcblx0XHRcdFx0XHRcdFx0Y29uc3Qgc3RhdGUgPSBkcmFnb25EaXNwbGF5LnBsYXlBbmltYXRpb24oJ2JlZ2luJywgMCk7XG5cdFx0XHRcdFx0XHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSxyZWplY3QpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRwbGF5QXVkaW9CeVVybCh0aGlzLmRhdGEuYmVnaW5fYXVkaW8sICgpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdnYW1lIGJlZ2luIGF1ZGlvIGZpbmlzaCcpO1xuXHRcdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZSgpXG5cdFx0XHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0b25Eb25lOiAgJ2d1aWRlJyxcblx0XHRcdFx0XHRcdG9uRXJyb3I6ICdndWlkZSdcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0sXG5cdFx0XHRcdFxuXHRcdFx0XHRndWlkZTp7XG5cdFx0XHRcdFx0aW52b2tlOiB7XG5cdFx0XHRcdFx0XHRzcmM6IChjdHgpID0+IHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLHJlamVjdCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdHBsYXlBdWRpb0J5VXJsKHRoaXMuZGF0YS5ndWlkZV9hdWRpbywgKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ2dhbWUgZ3VpZGUgYXVkaW8gZmluaXNoJyk7XG5cdFx0XHRcdFx0XHRcdFx0XHRyZWplY3QoKVxuXHRcdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdG9uRG9uZTogICdwbGF5aW5nJyxcblx0XHRcdFx0XHRcdG9uRXJyb3I6ICdwbGF5aW5nJ1xuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XG5cdFx0XHRcdH0sXG5cdFx0XHRcdHBsYXlpbmc6IHtcblx0XHRcdFx0XHRlbnRyeTogKGN0eCkgPT4ge1xuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ2VudHJ5IHBsYXkgc3RhZ2UnKTtcblx0XHRcdFx0XHRcdHZhciBkcmFnb25EaXNwbGF5ID0gdGhpcy5sb2dvQ2F0LmdldENvbXBvbmVudChkcmFnb25Cb25lcy5Bcm1hdHVyZURpc3BsYXkpO1xuXHRcdFx0XHRcdFx0Y29uc3Qgc3RhdGUgPSBkcmFnb25EaXNwbGF5LnBsYXlBbmltYXRpb24oJ25vcm1hbCcsIDApO1xuXHRcdFx0XHRcdFx0Y2MuYXNzZXRNYW5hZ2VyLmxvYWRSZW1vdGUodGhpcy5kYXRhLnBsYXlpbmdfYXVkaW8sIChlcnIsIGF1ZGlvQ2xpcCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRjYy5hdWRpb0VuZ2luZS5wbGF5TXVzaWMoYXVkaW9DbGlwLCB0cnVlLCAwLjgpO1xuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHRjdHgucXVlc3Rpb25zLmZvckVhY2goKGJsb2NrKSA9PiB7XG5cdFx0XHRcdFx0XHRcdGJsb2NrLm5vZGUuYWN0aXZlID0gZmFsc2U7XG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdGV4aXQ6ICgpID0+IHtcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdleGl0IHBsYXkgc3RhZ2UnKTtcblx0XHRcdFx0XHRcdGNjLmF1ZGlvRW5naW5lLnN0b3BNdXNpYygpO1xuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0b246IHtcblx0XHRcdFx0XHRcdE5FWFQ6ICdlbmQnXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHQvLyAuLi5RdWVzdGlvbnNTdGF0ZXNcblx0XHRcdFx0XHQuLi5RdWVzdGlvbnNBcnJheVN0YXR1c1xuXHRcdFx0XHR9LFxuXHRcdFx0XHRlbmQ6IHtcblx0XHRcdFx0XHRcdGVudHJ5OiAoY3R4LCBldmVudCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnZ2FtZSBlbmQnKTtcblx0XHRcdFx0XHRcdFx0dmFyIGRyYWdvbkRpc3BsYXkgPSB0aGlzLmxvZ29DYXQuZ2V0Q29tcG9uZW50KGRyYWdvbkJvbmVzLkFybWF0dXJlRGlzcGxheSk7XG5cdFx0XHRcdFx0XHRcdGNvbnN0IHN0YXRlID0gZHJhZ29uRGlzcGxheS5wbGF5QW5pbWF0aW9uKCdmaW5pc2gnLCAwKTtcblx0XHRcdFx0XHRcdFx0aWYod2luZG93LmNvdXJzZXdhcmUgJiYgd2luZG93LmNvdXJzZXdhcmUuY2xvc2VPc21vRmluZ2VyUmVhZCkge1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMuaXNPcGVuZWRPc21vRmluZ2VyUmVhZCA9IGZhbHNlO1xuXHRcdFx0XHRcdFx0XHRcdHdpbmRvdy5jb3Vyc2V3YXJlLmNsb3NlT3Ntb0ZpbmdlclJlYWQoKVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdHBsYXlBdWRpb0J5VXJsKHRoaXMuZGF0YS5lbmRfYXVkaW8sICgpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnZ2FtZSBmaW5pc2gnKTtcblx0XHRcdFx0XHRcdFx0XHRvbkhvbWV3b3JrRmluaXNoKCk7XG5cdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHRcdC8vIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSxyZWplY3QpID0+IHtcblx0XHRcdFx0XHRcdFx0Ly8gXHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHRcdFx0Ly8gXHRcdGNvbnNvbGUubG9nKCdoaW50IGZpbmlzaCcpO1xuXHRcdFx0XHRcdFx0XHQvLyBcdFx0cmVzb2x2ZSgpXG5cdFx0XHRcdFx0XHRcdC8vIFx0fSwgMjAwMClcblx0XHRcdFx0XHRcdFx0Ly8gfSlcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcblx0XHRcdFx0fSxcblx0XHRcdH1cblx0XHR9O1xuXHRcdGNvbnN0IGFmdGVyID0ge307XG5cdFx0Zm9yKGxldCBpID0gMCA7aSAgPCB0aGlzLl9oaW50c05vZGVMaXN0Lmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRjb25zdCB0ID0gdGhpcy5faGludHNOb2RlTGlzdFtpXS5ub2RlO1xuXHRcdFx0Y29uc3QgayA9IHRoaXMuX2hpbnRzTm9kZUxpc3RbaV0uYWZ0ZXI7XG5cdFx0XHRhZnRlcltrXT0ge1xuXHRcdFx0XHRhY3Rpb25zOiAoKSA9PiB7XG5cblx0XHRcdFx0XHRpZiAodC5pc1NwaW5lKSB7XG5cblx0XHRcdFx0XHRcdGNvbnN0IHNrZWxldG9uID0gdC5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pO1xuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRza2VsZXRvbi5zZXRUb1NldHVwUG9zZSgpO1xuXHRcdFx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdHNrZWxldG9uLnNldEFuaW1hdGlvbigwLCAnZW5sYXJnZScsIGZhbHNlKTtcblx0XHRcdFx0XHRcdH0sIDEpO1xuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHQvLyBza2VsZXRvbi5hbmltYXRpb24gPSBza2VsZXRvbi5hbmltYXRpb25OYW1lc1swXTtcblxuXHRcdFx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0XHRcdGNvbnN0IGRyYWdvbkRpc3BsYXkgPSB0LmdldENvbXBvbmVudChkcmFnb25Cb25lcy5Bcm1hdHVyZURpc3BsYXkpO1xuXHRcdFx0XHRcdFx0ZHJhZ29uRGlzcGxheS5wbGF5QW5pbWF0aW9uKCdlbmxhcmdlJywgMSk7XG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhkcmFnb25EaXNwbGF5Ll9hcm1hdHVyZUtleSwgJ2VubGFyZ2UnKVxuXHRcdFx0XHRcdFx0ZHJhZ29uRGlzcGxheS5hZGRFdmVudExpc3RlbmVyKGRyYWdvbkJvbmVzLkV2ZW50T2JqZWN0LkNPTVBMRVRFLCAoZXZlbnQpID0+IHtcblx0XHRcdFx0XHRcdFx0Ly8gVE9ETyDov5nph4zlhpnop6blj5Hkuovku7Zcblx0XHRcdFx0XHRcdFx0Ly8gZXZlbnQubmFtZeS4uuS6i+S7tuWQjeensFxuXHRcdFx0XHRcdFx0XHQvLyBldmVudC5hcm1hdHVyZS5hbmltYXRpb24ucGxheSgnbm9ybWFsJywgMCk7XG5cdFx0XHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKGV2ZW50LmFuaW1hdGlvblN0YXRlLm5hbWUsIGRyYWdvbkRpc3BsYXkuX2FybWF0dXJlS2V5LCAnZW5kJylcblx0XHRcdFx0XHRcdH0sIHRoaXMpO1xuXHRcdFx0XHRcdH1cblxuXG5cblx0XHRcdFx0XHQvLyBjb25zdCBkcmFnb25EaXNwbGF5ID0gdC5nZXRDb21wb25lbnQoZHJhZ29uQm9uZXMuQXJtYXR1cmVEaXNwbGF5KTtcblx0XHRcdFx0XHQvLyBkcmFnb25EaXNwbGF5LnBsYXlBbmltYXRpb24oJ2VubGFyZ2UnLCAxKTtcblx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhkcmFnb25EaXNwbGF5Ll9hcm1hdHVyZUtleSwgJ2VubGFyZ2UnKVxuXHRcdFx0XHRcdC8vIGRyYWdvbkRpc3BsYXkuYWRkRXZlbnRMaXN0ZW5lcihkcmFnb25Cb25lcy5FdmVudE9iamVjdC5DT01QTEVURSwgKGV2ZW50KSA9PiB7XG5cdFx0XHRcdFx0Ly8gXHQvL1RPRE8g6L+Z6YeM5YaZ6Kem5Y+R5LqL5Lu2XG5cdFx0XHRcdFx0Ly8gXHQvL2V2ZW50Lm5hbWXkuLrkuovku7blkI3np7Bcblx0XHRcdFx0XHQvLyBcdGV2ZW50LmFybWF0dXJlLmFuaW1hdGlvbi5wbGF5KCdub3JtYWwnLCAwKTtcblx0XHRcdFx0XHQvLyBcdGNvbnNvbGUubG9nKGV2ZW50LmFuaW1hdGlvblN0YXRlLm5hbWUsIGRyYWdvbkRpc3BsYXkuX2FybWF0dXJlS2V5LCAnZW5kJylcblx0XHRcdFx0XHQvLyB9LCB0aGlzKTtcblx0XHRcdFx0fSBcblx0XHRcdH1cblx0XHR9XG5cdFx0aWYgKHRoaXMuZGF0YS5iZWdpbl9zZXBfdGltZSkge1xuXHRcdFx0Y29uc3QgdCA9ICt0aGlzLmRhdGEuYmVnaW5fc2VwX3RpbWUgKiAxMDAwO1xuXHRcdFx0YWZ0ZXJbdF0gPSB7XG5cdFx0XHRcdGFjdGlvbnM6ICgpID0+IHtcblx0XHRcdFx0XHRjb25zb2xlLmxvZygnZ2FtZSBiZWdpbiAyJyk7XG5cblx0XHRcdFx0XHRmb3IobGV0IGkgPSAwIDtpICA8IHRoaXMuX2FsbEFuaW1hdGlvbk5vZGVzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0XHRjb25zdCB0ID0gdGhpcy5fYWxsQW5pbWF0aW9uTm9kZXNbaV07XG5cdFx0XHRcdFx0XHRpZiAodC5pc1NwaW5lKSB7XG5cblx0XHRcdFx0XHRcdFx0Y29uc3Qgc2tlbGV0b24gPSB0LmdldENvbXBvbmVudChzcC5Ta2VsZXRvbik7XG5cdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdza2VsZXRvbjogJywgc2tlbGV0b24pO1xuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0c2tlbGV0b24uc2V0VG9TZXR1cFBvc2UoKTtcblx0XHRcdFx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0c2tlbGV0b24uc2V0QW5pbWF0aW9uKDAsICdub3JtYWwnLCB0cnVlKTtcblx0XHRcdFx0XHRcdFx0fSwgMSk7XG5cdFx0XHRcdFx0XHRcdFxuXG5cdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdza2VsZXRvbiAyMjogJywgc2tlbGV0b24pO1xuXG5cdFx0XHRcdFx0XHRcdC8vIHNrZWxldG9uLmFuaW1hdGlvbiA9IHNrZWxldG9uLmFuaW1hdGlvbk5hbWVzWzBdO1xuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblxuXHRcdFx0XHRcdFx0XHRjb25zdCBkcmFnb25EaXNwbGF5ID0gdC5nZXRDb21wb25lbnQoZHJhZ29uQm9uZXMuQXJtYXR1cmVEaXNwbGF5KTtcblx0XHRcdFx0XHRcdFx0ZHJhZ29uRGlzcGxheS5wbGF5QW5pbWF0aW9uKCdub3JtYWwnLCAwKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdFx0c3RhdGUuc3RhdGVzLmJlZ2luLmFmdGVyID0gYWZ0ZXI7XG5cblxuXG5cdFx0Y29uc3QgZ2FtZU1hY2hpbmUgPSBjcmVhdGVNYWNoaW5lKHN0YXRlKTtcblx0XHR3aW5kb3cuZ2FtZU1hY2hpbmUgPSBnYW1lTWFjaGluZTtcblx0XHR0aGlzLmdhbWVNYWNoaW5lU2VydmljZSA9IGludGVycHJldChnYW1lTWFjaGluZSkub25UcmFuc2l0aW9uKChzdGF0ZSkgPT4ge1xuXHRcdC8vIGNvbnNvbGUubG9nKDEsIHN0YXRlLnZhbHVlLCBzdGF0ZS5jb250ZXh0KTtcblx0XHR9KTtcblx0XHR0aGlzLmdhbWVNYWNoaW5lU2VydmljZS5zdGFydCgpO1xuXHRcdGlmICh3aW5kb3cuZ2FtZU1hY2hpbmVTZXJ2aWNlKSB7XG5cdFx0XHR3aW5kb3cuZ2FtZU1hY2hpbmVTZXJ2aWNlID0gZ2FtZU1hY2hpbmVTZXJ2aWNlO1xuXHRcdH1cblxuXG5cdH0sXG5cblx0XG5cblxuXG5cdC8vIOeUn+WRveWRqOacnyBzdGFydFxuXHRzdGFydCgpIHtcblx0XHRsZXQgZ2V0RGF0YSA9IHRoaXMuZ2V0RGF0YS5iaW5kKHRoaXMpO1xuXHRcdGlmICh3aW5kb3cgJiYgd2luZG93LmNvdXJzZXdhcmUpIHtcblx0XHRcdGdldERhdGEgPSB3aW5kb3cuY291cnNld2FyZS5nZXREYXRhO1xuXHRcdH1cblxuXHRcdGdldERhdGEoKGRhdGEpID0+IHtcblx0XHRcdC8vIGNvbnNvbGUubG9nKCdkYXRhOicsIGRhdGEpO1xuXHRcdFx0dGhpcy5kYXRhID0gZGF0YSB8fCB0aGlzLmdldERlZmF1bHREYXRhKCk7XG5cdFx0XHR0aGlzLmRhdGEgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZGF0YSkpXG5cdFx0XHRcblx0XHRcdHRoaXMucHJlbG9hZEl0ZW0oKVxuXHRcdH0pO1xuXHRcdHdpbmRvdy5haXIgPSB3aW5kb3cuYWlyIHx8IHt9XG5cdFx0aWYgKHdpbmRvdy5haXIpIHtcblx0XHRcdHdpbmRvdy5haXIub3Ntb0ZpbmdlclJlYWRDYWxsYmFjayA9IChyZXN1bHQpID0+IHtcblx0XHRcdFx0aWYgKCF0aGlzLmdhbWVNYWNoaW5lU2VydmljZSkge1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXHRcdFx0XHQvLyBjb25zdCBzdCA9IHRoaXMuZ2FtZU1hY2hpbmVTZXJ2aWNlLnN0YXRlLnZhbHVlLmNvbnN0cnVjdG9yLm5hbWUgPT0gJ09iamVjdCcgXG5cdFx0XHRcdC8vICYmIHRoaXMuZ2FtZU1hY2hpbmVTZXJ2aWNlLnN0YXRlLnZhbHVlWydwbGF5aW5nJ11cblx0XHRcdFx0Ly8gJiYgdGhpcy5nYW1lTWFjaGluZVNlcnZpY2Uuc3RhdGUudmFsdWVbJ3BsYXlpbmcnXS5jb25zdHJ1Y3Rvci5uYW1lID09ICdPYmplY3QnXG5cdFx0XHRcdC8vICYmIHRoaXMuZ2FtZU1hY2hpbmVTZXJ2aWNlLnN0YXRlLnZhbHVlWydwbGF5aW5nJ11bJ3BsYXknXVxuXHRcdFx0XHQvLyAmJiB0aGlzLmdhbWVNYWNoaW5lU2VydmljZS5zdGF0ZS52YWx1ZVsncGxheWluZyddWydwbGF5J10gPT0gJ2Fuc3dlcidcblx0XHRcdFx0Ly8gaWYgKHN0KSB7XG5cdFx0XHRcdC8vIH1cblx0XHRcdFx0Y29uc3QgcmVzdWx0T2JqID0gSlNPTi5wYXJzZShyZXN1bHQpO1xuXHRcdFx0XHRjb25zb2xlLmxvZygnW0dlbmlzZSBKU10gJysgSlNPTi5zdHJpbmdpZnkocmVzdWx0T2JqLmZpbmdlcl9wb3NfaW5fcGFnZSkpXG5cdFx0XHRcdGNvbnN0IHAgPSByZXN1bHRPYmouZmluZ2VyX3Bvc19pbl9wYWdlO1xuXHRcdFx0XHRpZiAocC54ID09IC0xIHx8IHAueSA9PSAtMSkge1xuXHRcdFx0XHRcdHRoaXMuX2xhc3RGaW5nZXJQb3NpdGlvbi5wb3MgPSBudWxsO1xuXHRcdFx0XHRcdHRoaXMuX2xhc3RGaW5nZXJQb3NpdGlvbi5kaXJ0eSA9IGZhbHNlO1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLl9sYXN0RmluZ2VyUG9zaXRpb24gPSB7XG5cdFx0XHRcdFx0cG9zOntcblx0XHRcdFx0XHRcdHg6IHAueCxcblx0XHRcdFx0XHRcdHk6IHAueVxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0ZGlydHk6IHRydWVcblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLmRlYnVnUG9pbnRlcihwLngsIHAueSlcblx0XHRcdH1cblx0XHR9XG5cdFx0dGhpcy5pc0RlYnVnID0gZmFsc2U7XG5cdFx0XG5cdH0sXG5cdGNoZWNrSW5SZWdpb24ocikge1xuXHRcdGlmICghdGhpcy5fbGFzdEZpbmdlclBvc2l0aW9uICYmICF0aGlzLl9sYXN0RmluZ2VyUG9zaXRpb24ucG9zKSB7XG5cdFx0XHRyZXR1cm4gbnVsbDtcblx0XHR9XG5cdFx0Y29uc3QgcCA9IHRoaXMuX2xhc3RGaW5nZXJQb3NpdGlvbiA/IHRoaXMuX2xhc3RGaW5nZXJQb3NpdGlvbi5wb3MgfHwge3g6MCwgeTowfSA6IHt4OjAsIHk6MH07XG5cblx0XHRjb25zb2xlLmxvZygnfnA6ICcsIHApO1xuXHRcdGNvbnNvbGUubG9nKCd+cjogJywgcik7XG5cblx0XHRjb25zdCB3ID0gcC54ID4gci54ICYmIHAueCA8IChyLnggKyByLndpZHRoKTtcblx0XHRjb25zdCBoID0gcC55ID4gci55ICYmIHAueSA8IChyLnkgKyByLmhlaWdodCk7XG5cdFx0cmV0dXJuIHcgJiYgaDtcblxuXHR9LFxuXG5cdGdldERhdGEoZnVuYykge1xuXHRcdGlmICh3aW5kb3cgJiYgd2luZG93LmNvdXJzZXdhcmUpIHtcblx0XHRcdHdpbmRvdy5jb3Vyc2V3YXJlLmdldERhdGEoZnVuYywgJ3NjZW5lJyk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Y29uc3QgbWlkZGxlTGF5ZXIgPSBjYy5maW5kKCdtaWRkbGVMYXllcicpO1xuXHRcdGlmIChtaWRkbGVMYXllcikge1xuXHRcdFx0Y29uc3QgbWlkZGxlTGF5ZXJDb21wb25lbnQgPSBtaWRkbGVMYXllci5nZXRDb21wb25lbnQoJ21pZGRsZUxheWVyJyk7XG5cdFx0XHRtaWRkbGVMYXllckNvbXBvbmVudC5nZXREYXRhKGZ1bmMpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGZ1bmModGhpcy5nZXREZWZhdWx0RGF0YSgpKTtcblx0fSxcblxuXHRnZXREZWZhdWx0RGF0YSgpIHtcblx0XHRyZXR1cm4ge1wiYmVnaW5fYXVkaW9cIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS85YmU0NmM5YWRiNTQwZWQ4YTYwNzYzZjFlNjU3Y2NiNy5tcDNcIixcImJlZ2luX3NlcF90aW1lXCI6NjYsXCJndWlkZV9hdWRpb1wiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzk1MjNjOGVkNDVmYWVlNjg2MzYzZGQxNTdiMGQ3NDI2Lm1wM1wiLFwicGxheWluZ19hdWRpb1wiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2Q2YTk1MzA1MmE2ZjgwNTQ5NzMwY2I0MzA3YzU1NzE5Lm1wM1wiLFwicmlnaHRfYXVkaW9cIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS80Mzc5MWZjNDE4ZTY2NmRmNWU5ZWMxYjdiZjkzNjQwOS5tcDNcIixcIndyb25nX2F1ZGlvXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vN2RkODVmMDI1YTEzMmMyZWVmOGRhZWUzOGQ5MDAyODcubXAzXCIsXCJ3cm9uZ19hdWRpbzFcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9hNzZhZmIwNmFmMDc5OWJmNTM4ZTM4ZjlmODBhMjI2MS5tcDNcIixcIndyb25nX2F1ZGlvMlwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2RhZWU4OGI2ZjJlYWRkNzhiNjA0MzZlZWRmZmNhZTA4Lm1wM1wiLFwiZW5kX2F1ZGlvXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vOWMxZTg3YjNjMTg0YjA2ZTE0ZTQ0YmIwNThiOTgwNGUubXAzXCIsXCJiZ0l0ZW1cIjp7XCJ1cmxcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8xNmI2ZGFjZDhlNmMxY2U2ZGExNmY1MDBhNjZiMzY2Yi5qcGdcIixcInJlY3RcIjp7XCJ4XCI6MzE5LjY4LFwieVwiOjAsXCJ3aWR0aFwiOjI1Ny42NCxcImhlaWdodFwiOjM0Mn19LFwiaG90Wm9uZUl0ZW1BcnJcIjpbe1wiaWRcIjpcIjE2NTA1NDQ4MDc4NzdcIixcImluZGV4XCI6MCxcIml0ZW1UeXBlXCI6XCJwaWNcIixcImZvbnRTY2FsZVwiOjAuNzAwNzgxMjUsXCJpbWdTY2FsZVwiOjEsXCJpbWdTaXplV1wiOjAsXCJpbWdTaXplSFwiOjAsXCJtYXBTY2FsZVwiOjAuNzAwNzgxMjUsXCJkcmFnRG90XCI6e1wieFwiOjQ0OC41LFwieVwiOjE3Ni42NTIwNzg3NzQ2MTcwMn0sXCJnSWR4XCI6XCIxXCIsXCJza2VKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzY2YzdjMDg0N2MzM2Y3Zjk1Y2IwMDM1ZmUxNGM0NDA1Lmpzb25cIixcIm5hbWVcIjpcIm1vbmtleV9za2UuanNvblwifSxcInRleEpzb25EYXRhXCI6e1widXJsXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vOThhODI3MmNkMmQ5NzA0N2IwOTBmZjEwZTk0OGI5NzguanNvblwiLFwibmFtZVwiOlwibW9ua2V5X3RleC5qc29uXCJ9LFwidGV4UG5nRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2MzNWNlZDQwOGFkNjhhNTJjNGVjNTM3NTM3M2QzNjI3LnBuZ1wiLFwibmFtZVwiOlwibW9ua2V5X3RleC5wbmdcIn0sXCJyZWN0XCI6e1wieFwiOjEyOC44MyxcInlcIjoxNzEsXCJ3aWR0aFwiOjAsXCJoZWlnaHRcIjowfX0se1wiaWRcIjpcIjE2NTA1NDYwNzkwMDBcIixcImluZGV4XCI6MSxcImF1ZGlvX3VybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2Y5ZWRjODRhNjY5Njg4YzVhYmRkZDU1ZTJhYWIwMTVkLm1wM1wiLFwiaXRlbVR5cGVcIjpcInJlY3RcIixcImZvbnRTY2FsZVwiOjAuNzAwNzgxMjUsXCJpbWdTY2FsZVwiOjEsXCJpbWdTaXplV1wiOjAsXCJpbWdTaXplSFwiOjAsXCJtYXBTY2FsZVwiOjAuNzAwNzgxMjUsXCJkcmFnRG90XCI6e1wieFwiOjQ0OC41LFwieVwiOjE3MC41NDk4NDU4Mzc2MTU2Nn0sXCJnSWR4XCI6XCIwXCIsXCJsYWJlbFRleHRcIjpcIjIxLjNcIixcInBvc1hcIjo2OTIuNDEyNzUwMDE5MzU5OCxcInBvc1lcIjoyMTguMTQ2OTU5NTkxODU1NTYsXCJza2VKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2UzYzY3YTI1ZGQzYmIzNGZlMTEzZTEyNmU2ZTFjYzgxLmpzb25cIixcIm5hbWVcIjpcIm94X3NrZS5qc29uXCJ9LFwidGV4SnNvbkRhdGFcIjp7XCJ1cmxcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS84MWQ0ODdiZjMxZDNhNGQwZjI1ZjQ0YzE4NGJhOTIzMy5qc29uXCIsXCJuYW1lXCI6XCJveF90ZXguanNvblwifSxcInRleFBuZ0RhdGFcIjp7XCJ1cmxcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9lMTk5MzkyYjUyYTczNWY2ZTM3YTY4MTVlYzNiYjEwZS5wbmdcIixcIm5hbWVcIjpcIm94X3RleC5wbmdcIn0sXCJyZWN0XCI6e1wieFwiOjE1OS4zNCxcInlcIjoxMzguNjYsXCJ3aWR0aFwiOjM4LjgzLFwiaGVpZ2h0XCI6MzguODN9fSx7XCJpZFwiOlwiMTY1MDU0NjIzMjE4OVwiLFwiaW5kZXhcIjoyLFwiaXRlbVR5cGVcIjpcInJlY3RcIixcImZvbnRTY2FsZVwiOjAuNzAwNzgxMjUsXCJpbWdTY2FsZVwiOjEsXCJpbWdTaXplV1wiOjAsXCJpbWdTaXplSFwiOjAsXCJtYXBTY2FsZVwiOjAuNzAwNzgxMjUsXCJkcmFnRG90XCI6e1wieFwiOjQ0OC41LFwieVwiOjE3MC41NDk4NDU4Mzc2MTU2Nn0sXCJnSWR4XCI6XCIxXCIsXCJza2VKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzBhM2VhOTNjNjJmZjQwODc4NTllZDU4NzAyMGM1M2I1Lmpzb25cIixcIm5hbWVcIjpcImNhcl9za2UuanNvblwifSxcInRleEpzb25EYXRhXCI6e1widXJsXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vNjAwMGU0ZmJiYjk1ZjU0NWFmYTU0NTZjNjRkOGM3ZDEuanNvblwiLFwibmFtZVwiOlwiY2FyX3RleC5qc29uXCJ9LFwidGV4UG5nRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzc1ZTk5NzJjMTVkMmE2N2RlZWRmNjBkNDQ4ZmQ0ZTY5LnBuZ1wiLFwibmFtZVwiOlwiY2FyX3RleC5wbmdcIn0sXCJyZWN0XCI6e1wieFwiOjM2LjQsXCJ5XCI6NzguNTYsXCJ3aWR0aFwiOjE4NC44NyxcImhlaWdodFwiOjE4NC44N319LHtcImlkXCI6XCIxNjUwNTQ2MzIxMTI3XCIsXCJpbmRleFwiOjMsXCJpdGVtVHlwZVwiOlwicmVjdFwiLFwiZm9udFNjYWxlXCI6MC43MDA3ODEyNSxcImltZ1NjYWxlXCI6MSxcImltZ1NpemVXXCI6MCxcImltZ1NpemVIXCI6MCxcIm1hcFNjYWxlXCI6MC43MDA3ODEyNSxcImRyYWdEb3RcIjp7XCJ4XCI6NDQ4LjUsXCJ5XCI6MTcwLjU0OTg0NTgzNzYxNTY2fSxcImdJZHhcIjpcIjFcIixcInNrZUpzb25EYXRhXCI6e1widXJsXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vZDRjMWUxYWJjZjNkOGY1NDE1NzQ3ZmQyNTk5YjhhOGMuanNvblwiLFwibmFtZVwiOlwiQ2hhaXJfc2tlLmpzb25cIn0sXCJ0ZXhKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzFkNzI1NGViN2ZhMzAwOGU4MTc4MzQ3YmI5NDRjZGNiLmpzb25cIixcIm5hbWVcIjpcIkNoYWlyX3RleC5qc29uXCJ9LFwidGV4UG5nRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzQ4ZTg1ZThmZjM4NGVlZDcyZGZlODY1ZmM5ODFlMThjLnBuZ1wiLFwibmFtZVwiOlwiQ2hhaXJfdGV4LnBuZ1wifSxcInJlY3RcIjp7XCJ4XCI6MzYuNCxcInlcIjo3OC41NixcIndpZHRoXCI6MTg0Ljg3LFwiaGVpZ2h0XCI6MTg0Ljg3fX0se1wiaWRcIjpcIjE2NTA1NDYzMzUyNDBcIixcImluZGV4XCI6NCxcImF1ZGlvX3VybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzYxODJkNDZiYWQwOWZjY2I4OTM0MjE3ZDMzNTU3MjA0Lm1wM1wiLFwiaXRlbVR5cGVcIjpcInJlY3RcIixcImZvbnRTY2FsZVwiOjAuNzAwNzgxMjUsXCJpbWdTY2FsZVwiOjEsXCJpbWdTaXplV1wiOjAsXCJpbWdTaXplSFwiOjAsXCJtYXBTY2FsZVwiOjAuNzAwNzgxMjUsXCJkcmFnRG90XCI6e1wieFwiOjQ0OC41LFwieVwiOjE3MC41NDk4NDU4Mzc2MTU2Nn0sXCJnSWR4XCI6XCIwXCIsXCJsYWJlbFRleHRcIjpcIjUzXCIsXCJwb3NYXCI6NDUyLjUsXCJwb3NZXCI6MTI5LFwic2tlSnNvbkRhdGFcIjp7XCJ1cmxcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9iNDYyZDgwYzIxYWE3NTk5NWRkOTlmMGY0M2NjZjFlNi5qc29uXCIsXCJuYW1lXCI6XCJxdWlsdF9za2UuanNvblwifSxcInRleEpzb25EYXRhXCI6e1widXJsXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vODY2YzllMjk4Nzg3MDk0N2ZjNjNiY2UxMDhlZjE1N2EuanNvblwiLFwibmFtZVwiOlwicXVpbHRfdGV4Lmpzb25cIn0sXCJ0ZXhQbmdEYXRhXCI6e1widXJsXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vZDk1MmMzN2Y0MGMzY2YwN2UwMjRlZGZkNDQxNjQyM2UucG5nXCIsXCJuYW1lXCI6XCJxdWlsdF90ZXgucG5nXCJ9LFwicmVjdFwiOntcInhcIjo3MS45OSxcInlcIjoxMDAuNzUsXCJ3aWR0aFwiOjUwLjgzLFwiaGVpZ2h0XCI6MzYuOTd9fSx7XCJpZFwiOlwiMTY1MDU0NjY0NDMzM1wiLFwiaW5kZXhcIjo1LFwiaXRlbVR5cGVcIjpcInJlY3RcIixcImZvbnRTY2FsZVwiOjAuNzAwNzgxMjUsXCJpbWdTY2FsZVwiOjEsXCJpbWdTaXplV1wiOjAsXCJpbWdTaXplSFwiOjAsXCJtYXBTY2FsZVwiOjAuNzAwNzgxMjUsXCJkcmFnRG90XCI6e1wieFwiOjQ0OC41LFwieVwiOjE3MC41NDk4NDU4Mzc2MTU2Nn0sXCJnSWR4XCI6XCIxXCIsXCJza2VKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzZiOGExYTdiMGZkMjM2ODZlYTYwNDY1Mjc5Y2Q0ZGEwLmpzb25cIixcIm5hbWVcIjpcInJvYm90X3NrZS5qc29uXCJ9LFwidGV4SnNvbkRhdGFcIjp7XCJ1cmxcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8zMWE3NGVkOTVmZTQ4YWRhYjAwNzAyNjc1ODExYzNhOC5qc29uXCIsXCJuYW1lXCI6XCJyb2JvdF90ZXguanNvblwifSxcInRleFBuZ0RhdGFcIjp7XCJ1cmxcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9lNTcwNTI1MzdkODkzNTZiMGE3OWQ4Y2I3Nzk4MDIxOS5wbmdcIixcIm5hbWVcIjpcInJvYm90X3RleC5wbmdcIn0sXCJyZWN0XCI6e1wieFwiOjM2LjQsXCJ5XCI6NzguNTYsXCJ3aWR0aFwiOjE4NC44NyxcImhlaWdodFwiOjE4NC44N319LHtcImlkXCI6XCIxNjUwNTQ2NjU4Njk3XCIsXCJpbmRleFwiOjYsXCJpdGVtVHlwZVwiOlwicmVjdFwiLFwiZm9udFNjYWxlXCI6MC43MDA3ODEyNSxcImltZ1NjYWxlXCI6MSxcImltZ1NpemVXXCI6MCxcImltZ1NpemVIXCI6MCxcIm1hcFNjYWxlXCI6MC43MDA3ODEyNSxcImRyYWdEb3RcIjp7XCJ4XCI6NDQ4LjUsXCJ5XCI6MTcwLjU0OTg0NTgzNzYxNTY2fSxcImdJZHhcIjpcIjFcIixcInNrZUpzb25EYXRhXCI6e1widXJsXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vYmYzNjE2MDYwNDYwNDM5ZWViM2ZkNTIyNzM3MGUxNWEuanNvblwiLFwibmFtZVwiOlwicGFuZGFfc2tlLmpzb25cIn0sXCJ0ZXhKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzJkYWZlYjI1Yzk3M2M5MTAwMzVmZjdlZDFhNmE2MzM0Lmpzb25cIixcIm5hbWVcIjpcInBhbmRhX3RleC5qc29uXCJ9LFwidGV4UG5nRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzc1ZDkwYjA1MzQ1ZmE0NzAyODVhYzQ4OGNiMjA1Y2ZkLnBuZ1wiLFwibmFtZVwiOlwicGFuZGFfdGV4LnBuZ1wifSxcInJlY3RcIjp7XCJ4XCI6MzYuNCxcInlcIjo3OC41NixcIndpZHRoXCI6MTg0Ljg3LFwiaGVpZ2h0XCI6MTg0Ljg3fX0se1wiaWRcIjpcIjE2NTA1NDY2NzI0NDhcIixcImluZGV4XCI6NyxcIml0ZW1UeXBlXCI6XCJyZWN0XCIsXCJmb250U2NhbGVcIjowLjcwMDc4MTI1LFwiaW1nU2NhbGVcIjoxLFwiaW1nU2l6ZVdcIjowLFwiaW1nU2l6ZUhcIjowLFwibWFwU2NhbGVcIjowLjcwMDc4MTI1LFwiZHJhZ0RvdFwiOntcInhcIjo0NDguNSxcInlcIjoxNzAuNTQ5ODQ1ODM3NjE1NjZ9LFwiZ0lkeFwiOlwiMVwiLFwic2tlSnNvbkRhdGFcIjp7XCJ1cmxcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS81ZmVmZjgxMWIwMTE3ZGQ4ZTY3OTczMDcyZTYwZDMxMC5qc29uXCIsXCJuYW1lXCI6XCJxdWVlbl8xX3NrZS5qc29uXCJ9LFwidGV4SnNvbkRhdGFcIjp7XCJ1cmxcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9iYjU4NTZiOTJiMDljNWZlN2ExZGEwMGJiNjgxMzRjYS5qc29uXCIsXCJuYW1lXCI6XCJxdWVlbl8xX3RleC5qc29uXCJ9LFwidGV4UG5nRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2Y0ZTVhMTM4YjA4NmVmM2RjZmE1NzQzMjU0M2I2NmU5LnBuZ1wiLFwibmFtZVwiOlwicXVlZW5fMV90ZXgucG5nXCJ9LFwiYW5pbVR5cGVcIjpcImRyYWdvbkJvbmVcIixcInJlY3RcIjp7XCJ4XCI6MzYuNCxcInlcIjo3OC41NixcIndpZHRoXCI6MTg0Ljg3LFwiaGVpZ2h0XCI6MTg0Ljg3fX0se1wiaWRcIjpcIjE2NTA1NDY2ODcwNjlcIixcImluZGV4XCI6OCxcImF1ZGlvX3VybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzMwMTg1OGRmN2IwN2U2NjE0MjZhMDA2YWNiMjYwNTljLm1wM1wiLFwiaXRlbVR5cGVcIjpcInJlY3RcIixcImZvbnRTY2FsZVwiOjAuNzAwNzgxMjUsXCJpbWdTY2FsZVwiOjEsXCJpbWdTaXplV1wiOjAsXCJpbWdTaXplSFwiOjAsXCJtYXBTY2FsZVwiOjAuNzAwNzgxMjUsXCJkcmFnRG90XCI6e1wieFwiOjQ0OC41LFwieVwiOjE3MC41NDk4NDU4Mzc2MTU2Nn0sXCJnSWR4XCI6XCIwXCIsXCJsYWJlbFRleHRcIjpcIjQyLjVcIixcInBvc1hcIjo1MTIuMzg4MzUyNDYyOTgzNCxcInBvc1lcIjoyNTkuODM2MTcxMjU4NDksXCJza2VKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2YzYThlZmNkMTg1MGVlOGE2Y2VlODlhMThlODZkYzRhLmpzb25cIixcIm5hbWVcIjpcIm1pbGtfc2tlLmpzb25cIn0sXCJ0ZXhKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzczYjA1ZjE5ZDQxOWJkM2FjMTdjMmI5MmRhYjg4NDIzLmpzb25cIixcIm5hbWVcIjpcIm1pbGtfdGV4Lmpzb25cIn0sXCJ0ZXhQbmdEYXRhXCI6e1widXJsXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vZTM4Mzc1ZGE0NmY4NWEyMzIwMmQ1Y2JjODEyZDYyZTQucG5nXCIsXCJuYW1lXCI6XCJtaWxrX3RleC5wbmdcIn0sXCJyZWN0XCI6e1wieFwiOjM3LjcyLFwieVwiOjE2OC4xLFwid2lkdGhcIjoyMS4xNyxcImhlaWdodFwiOjQwLjM0fX0se1wiaWRcIjpcIjE2NTA1NDcwNjA0OTBcIixcImluZGV4XCI6OSxcImF1ZGlvX3VybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzA1ZTViMjlhZWZmYTRlZjk0YmNjNWIyMzE2N2FlYzkwLm1wM1wiLFwiaXRlbVR5cGVcIjpcInJlY3RcIixcImZvbnRTY2FsZVwiOjAuNzAwNzgxMjUsXCJpbWdTY2FsZVwiOjEsXCJpbWdTaXplV1wiOjAsXCJpbWdTaXplSFwiOjAsXCJtYXBTY2FsZVwiOjAuNzAwNzgxMjUsXCJkcmFnRG90XCI6e1wieFwiOjQ0OC41LFwieVwiOjE3MC41NDk4NDU4Mzc2MTU2Nn0sXCJnSWR4XCI6XCIwXCIsXCJsYWJlbFRleHRcIjpcIjQ3LjdcIixcInBvc1hcIjo0ODMuMjIxMzU3MzQwMDY3MzYsXCJwb3NZXCI6MjQ1LjM4MDM5NDA3MDc2NTA1LFwic2tlSnNvbkRhdGFcIjp7XCJ1cmxcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS85OWE2ZTZkOTM2MWVjYTdlNTFlZDM0Y2EyZTBmZDAxNy5qc29uXCIsXCJuYW1lXCI6XCJiaXJkX3NrZS5qc29uXCJ9LFwidGV4SnNvbkRhdGFcIjp7XCJ1cmxcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS82YTM3OWRkYmU2ZGYxODA2MzY4YzQzYzhlZTgyMzMyZC5qc29uXCIsXCJuYW1lXCI6XCJiaXJkX3RleC5qc29uXCJ9LFwidGV4UG5nRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2NmMDRjNjMxMDRkODk1MTE5MDI1Nzg5NDQwNjFmOTgwLnBuZ1wiLFwibmFtZVwiOlwiYmlyZF90ZXgucG5nXCJ9LFwicmVjdFwiOntcInhcIjoxNy45MSxcInlcIjoxNDAuODMsXCJ3aWR0aFwiOjE4LjUyLFwiaGVpZ2h0XCI6NzMuOTV9fSx7XCJpZFwiOlwiMTY1MDU0NzM3Mzg2OVwiLFwiaW5kZXhcIjoxMCxcIml0ZW1UeXBlXCI6XCJyZWN0XCIsXCJmb250U2NhbGVcIjowLjcwMDc4MTI1LFwiaW1nU2NhbGVcIjoxLFwiaW1nU2l6ZVdcIjowLFwiaW1nU2l6ZUhcIjowLFwibWFwU2NhbGVcIjowLjcwMDc4MTI1LFwiZHJhZ0RvdFwiOntcInhcIjo0NDguNSxcInlcIjoxNzAuNTQ5ODQ1ODM3NjE1NjZ9LFwiZ0lkeFwiOlwiMVwiLFwibGFiZWxUZXh0XCI6XCI2MFwiLFwicG9zWFwiOjQyMC41LFwicG9zWVwiOjI5NSxcInNrZUpzb25EYXRhXCI6e1widXJsXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vN2ViYzI4ZjNmMzM5YjE2Y2E0OGQyMGYyYTNlYjQ0YzEuanNvblwiLFwibmFtZVwiOlwiYWxsaWdhdG9yX3NrZS5qc29uXCJ9LFwidGV4SnNvbkRhdGFcIjp7XCJ1cmxcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9iMDRlODIwNmZkMjE3YmQyMmRjZGFjMTAwODM5MzMxNy5qc29uXCIsXCJuYW1lXCI6XCJhbGxpZ2F0b3JfdGV4Lmpzb25cIn0sXCJ0ZXhQbmdEYXRhXCI6e1widXJsXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vYjM5OTBkOTQ2MTJiZDNkNmUyNWNmMjAwZjg1ZTQzMzQucG5nXCIsXCJuYW1lXCI6XCJhbGxpZ2F0b3JfdGV4LnBuZ1wifSxcInJlY3RcIjp7XCJ4XCI6MTYuMDYsXCJ5XCI6MjI5LjI0LFwid2lkdGhcIjoxMDMuNTIsXCJoZWlnaHRcIjo4Ni44OX19LHtcImlkXCI6XCIxNjUwNTQ3NDgyMzk4XCIsXCJpbmRleFwiOjExLFwiaXRlbVR5cGVcIjpcInJlY3RcIixcImZvbnRTY2FsZVwiOjAuNzAwNzgxMjUsXCJpbWdTY2FsZVwiOjEsXCJpbWdTaXplV1wiOjAsXCJpbWdTaXplSFwiOjAsXCJtYXBTY2FsZVwiOjAuNzAwNzgxMjUsXCJkcmFnRG90XCI6e1wieFwiOjQ0OC41LFwieVwiOjE3MC41NDk4NDU4Mzc2MTU2Nn0sXCJnSWR4XCI6XCIxXCIsXCJza2VKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2ExOWYyZWQ3YzI5N2M3MGM2MzllNTRlOTY5ZDY0NTkzLmpzb25cIixcIm5hbWVcIjpcInJhYmJpdF9za2UuanNvblwifSxcInRleEpzb25EYXRhXCI6e1widXJsXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vNGI0ZjgxODljZjc5ZmFkZDdlNjUzM2FkODRkYjk2YmUuanNvblwiLFwibmFtZVwiOlwicmFiYml0X3RleC5qc29uXCJ9LFwidGV4UG5nRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzhmOTUzYzg2MWVhYzk0ZTRlMjJhOGU0ZWMzZWI1NmI1LnBuZ1wiLFwibmFtZVwiOlwicmFiYml0X3RleC5wbmdcIn0sXCJyZWN0XCI6e1wieFwiOjM2LjQsXCJ5XCI6NzguNTYsXCJ3aWR0aFwiOjE4NC44NyxcImhlaWdodFwiOjE4NC44N319LHtcImlkXCI6XCIxNjUwNTQ3NDk2MjMyXCIsXCJpbmRleFwiOjEyLFwiaXRlbVR5cGVcIjpcInJlY3RcIixcImZvbnRTY2FsZVwiOjAuNzAwNzgxMjUsXCJpbWdTY2FsZVwiOjEsXCJpbWdTaXplV1wiOjAsXCJpbWdTaXplSFwiOjAsXCJtYXBTY2FsZVwiOjAuNzAwNzgxMjUsXCJkcmFnRG90XCI6e1wieFwiOjQ0OC41LFwieVwiOjE3MC41NDk4NDU4Mzc2MTU2Nn0sXCJnSWR4XCI6XCIxXCIsXCJza2VKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzg5ZTBmYzYwODVjMjk0ODY2MTQyODAzYjRmZjI2N2JhLmpzb25cIixcIm5hbWVcIjpcIktpbmdfc2tlLmpzb25cIn0sXCJ0ZXhKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2Q2Y2ZkMmQ5Y2QyY2Q5YWZmMDlhYjdmMDNlMjg3NDIxLmpzb25cIixcIm5hbWVcIjpcIktpbmdfdGV4Lmpzb25cIn0sXCJ0ZXhQbmdEYXRhXCI6e1widXJsXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vOGMwMmMzNTYxYTJlZWEwNDIzY2IxMTAyMjAwZTc2ZjkucG5nXCIsXCJuYW1lXCI6XCJLaW5nX3RleC5wbmdcIn0sXCJyZWN0XCI6e1wieFwiOjM2LjQsXCJ5XCI6NzguNTYsXCJ3aWR0aFwiOjE4NC44NyxcImhlaWdodFwiOjE4NC44N319LHtcImlkXCI6XCIxNjUwNTQ3NTEwNjQ4XCIsXCJpbmRleFwiOjEzLFwiYXVkaW9fdXJsXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vNzE3ZWU5NzEzYjE4ZDMyZDM4ZWUwODljMGFiYzg1ZWEubXAzXCIsXCJpdGVtVHlwZVwiOlwicmVjdFwiLFwiZm9udFNjYWxlXCI6MC43MDA3ODEyNSxcImltZ1NjYWxlXCI6MSxcImltZ1NpemVXXCI6MCxcImltZ1NpemVIXCI6MCxcIm1hcFNjYWxlXCI6MC43MDA3ODEyNSxcImRyYWdEb3RcIjp7XCJ4XCI6NDQ4LjUsXCJ5XCI6MTcwLjU0OTg0NTgzNzYxNTY2fSxcImdJZHhcIjpcIjBcIixcImxhYmVsVGV4dFwiOlwiMTAuMlwiLFwicG9zWFwiOjY0MS42NjgwMTM0OTUxOTQ0LFwicG9zWVwiOjI4OC45MzY3MjcwMjU0MTI1NSxcInNrZUpzb25EYXRhXCI6e1widXJsXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vM2I3MTEzZWJkZWRjYWU1NGJlNmQwYjk2MzM4NzViODguanNvblwiLFwibmFtZVwiOlwibmV0X3NrZS5qc29uXCJ9LFwidGV4SnNvbkRhdGFcIjp7XCJ1cmxcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9mYzgxMDc2MmYxZjIwMjU1ODVlNzIyZTQzZTk0MTM3Yi5qc29uXCIsXCJuYW1lXCI6XCJuZXRfdGV4Lmpzb25cIn0sXCJ0ZXhQbmdEYXRhXCI6e1widXJsXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vNWM5MDgyMGRhNGY1NTkyODBmZWU0NTc5ZThkYjJkYmMucG5nXCIsXCJuYW1lXCI6XCJuZXRfdGV4LnBuZ1wifSxcInJlY3RcIjp7XCJ4XCI6MTIzLjAzLFwieVwiOjE4My4wMixcIndpZHRoXCI6MzcuOSxcImhlaWdodFwiOjUyLjY4fX0se1wiaWRcIjpcIjE2NTA1NDc1NTUwMThcIixcImluZGV4XCI6MTQsXCJpdGVtVHlwZVwiOlwicmVjdFwiLFwiZm9udFNjYWxlXCI6MC43MDA3ODEyNSxcImltZ1NjYWxlXCI6MSxcImltZ1NpemVXXCI6MCxcImltZ1NpemVIXCI6MCxcIm1hcFNjYWxlXCI6MC43MDA3ODEyNSxcImRyYWdEb3RcIjp7XCJ4XCI6NDQ4LjUsXCJ5XCI6MTcwLjU0OTg0NTgzNzYxNTY2fSxcImdJZHhcIjpcIjFcIixcInNrZUpzb25EYXRhXCI6e1widXJsXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vMGE1YzhkZjVhMjNhY2E3YTc1NDBiODczNDBjNzYwOGYuanNvblwiLFwibmFtZVwiOlwib3N0cmljaF9za2UuanNvblwifSxcInRleEpzb25EYXRhXCI6e1widXJsXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vMjQ3ODU3M2M5MWQxYTgzZmEwMzhlN2Y2YTlkYjhhODUuanNvblwiLFwibmFtZVwiOlwib3N0cmljaF90ZXguanNvblwifSxcInRleFBuZ0RhdGFcIjp7XCJ1cmxcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS80NjE5YWNlNjdlNTc3MGUxZmQ3ZmMzZmY3NmU3MjYzZS5wbmdcIixcIm5hbWVcIjpcIm9zdHJpY2hfdGV4LnBuZ1wifSxcInJlY3RcIjp7XCJ4XCI6MzYuNCxcInlcIjo3OC41NixcIndpZHRoXCI6MTg0Ljg3LFwiaGVpZ2h0XCI6MTg0Ljg3fX0se1wiaWRcIjpcIjE2NTA1NDc1NzMzMDVcIixcImluZGV4XCI6MTUsXCJhdWRpb191cmxcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9iN2JjMTYxYzNhM2VlMTQzYTUzMDU4NjkxYWJmNGZhOS5tcDNcIixcIml0ZW1UeXBlXCI6XCJyZWN0XCIsXCJmb250U2NhbGVcIjowLjcwMDc4MTI1LFwiaW1nU2NhbGVcIjoxLFwiaW1nU2l6ZVdcIjowLFwiaW1nU2l6ZUhcIjowLFwibWFwU2NhbGVcIjowLjcwMDc4MTI1LFwiZHJhZ0RvdFwiOntcInhcIjo0NDguNSxcInlcIjoxNzAuNTQ5ODQ1ODM3NjE1NjZ9LFwiZ0lkeFwiOlwiMFwiLFwibGFiZWxUZXh0XCI6XCIxNS45XCIsXCJwb3NYXCI6NjcwLjgxMTk4Mzk3NzI3NTQsXCJwb3NZXCI6MTM3Ljg3OTQwODcwMjAxNjk3LFwic2tlSnNvbkRhdGFcIjp7XCJ1cmxcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS85MWU4Y2EwM2QxZGY4OWU0ZWMyNDA0NDIxZDRjNjkyZi5qc29uXCIsXCJuYW1lXCI6XCJkdXJhem5vX3NrZS5qc29uXCJ9LFwidGV4SnNvbkRhdGFcIjp7XCJ1cmxcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8zMmQyNTliMDE5NDM3MDYyNWY4ZmU5NGIxZGRjMGE4NS5qc29uXCIsXCJuYW1lXCI6XCJkdXJhem5vX3RleC5qc29uXCJ9LFwidGV4UG5nRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzhlZWY1NmIyMGUyMjFhMzZmY2UxZDY3MjE5OTg1OWZmLnBuZ1wiLFwibmFtZVwiOlwiZHVyYXpub190ZXgucG5nXCJ9LFwicmVjdFwiOntcInhcIjoxNDYuOTIsXCJ5XCI6ODMuNzMsXCJ3aWR0aFwiOjMyLjM0LFwiaGVpZ2h0XCI6MzIuMzR9fV19XG5cdFx0Ly8gcmV0dXJuICB7XCJiZWdpbl9hdWRpb1wiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8zZDMwN2EwMjY2M2UxY2Q2NjdiN2M5NTEzNDBlYzk4Yi5tcDNcIixcImJlZ2luX3NlcF90aW1lXCI6MSxcImd1aWRlX2F1ZGlvXCI6XCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzNkMzA3YTAyNjYzZTFjZDY2N2I3Yzk1MTM0MGVjOThiLm1wM1wiLFwicGxheWluZ19hdWRpb1wiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8zZDMwN2EwMjY2M2UxY2Q2NjdiN2M5NTEzNDBlYzk4Yi5tcDNcIixcInJpZ2h0X2F1ZGlvXCI6XCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzNkMzA3YTAyNjYzZTFjZDY2N2I3Yzk1MTM0MGVjOThiLm1wM1wiLFwid3JvbmdfYXVkaW9cIjpcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vM2QzMDdhMDI2NjNlMWNkNjY3YjdjOTUxMzQwZWM5OGIubXAzXCIsXCJ3cm9uZ19hdWRpbzFcIjpcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vM2QzMDdhMDI2NjNlMWNkNjY3YjdjOTUxMzQwZWM5OGIubXAzXCIsXCJ3cm9uZ19hdWRpbzJcIjpcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vM2QzMDdhMDI2NjNlMWNkNjY3YjdjOTUxMzQwZWM5OGIubXAzXCIsXCJlbmRfYXVkaW9cIjpcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vM2QzMDdhMDI2NjNlMWNkNjY3YjdjOTUxMzQwZWM5OGIubXAzXCIsXCJiZ0l0ZW1cIjp7XCJ1cmxcIjpcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vODRlYzZlZGMyMGJjZWFhYTlkYmU4MjQwOTJiNjg2MGQucG5nXCIsXCJyZWN0XCI6e1wieFwiOjczNi45NSxcInlcIjowLFwid2lkdGhcIjo1OTkuMDksXCJoZWlnaHRcIjo3NzV9fSxcImhvdFpvbmVJdGVtQXJyXCI6W3tcImlkXCI6XCIxNjU5MzMzNjQ1NTczXCIsXCJpbmRleFwiOjAsXCJhdWRpb191cmxcIjpcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vNWExYTI2NzA4NDViZmU3NjY2MmU4NmQ5YTNhNjlmODEubXAzXCIsXCJpdGVtVHlwZVwiOlwicmVjdFwiLFwiZm9udFNjYWxlXCI6MS42MTk1MzEyNSxcImltZ1NjYWxlXCI6MSxcImltZ1NpemVXXCI6MCxcImltZ1NpemVIXCI6MCxcIm1hcFNjYWxlXCI6MS42MTk1MzEyNSxcImRyYWdEb3RcIjp7XCJ4XCI6MTAzNi41LFwieVwiOjM4Ny41fSxcImdJZHhcIjpcIjFcIixcImxhYmVsVGV4dFwiOlwiMVwiLFwicG9zWFwiOjg4Ny41LFwicG9zWVwiOjE2NS41LFwic2tlSnNvbkRhdGFcIjp7XCJ1cmxcIjpcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vMTMzYTFmNjA3MTllZDI2MjQ3ZTM1ZGMwMjJkODI4NjIuanNvblwiLFwibmFtZVwiOlwic3BpbmVib3ktcHJvLmpzb25cIn0sXCJ0ZXhKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9lMDk0NWI4MjY1ZWEzYjgwNTNhZmI4MTRjNmI4NDlkMy5hdGxhc1wiLFwibmFtZVwiOlwic3BpbmVib3ktcHJvLmF0bGFzXCJ9LFwidGV4UG5nRGF0YVwiOntcInVybFwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS81MTc1NTNmNTAyMjQ5MTUxNDhmOWVmYzViNzU1Njc5OC5wbmdcIixcIm5hbWVcIjpcInNwaW5lYm95LXByby5wbmdcIn0sXCJhbmltVHlwZVwiOlwic3BpbmVcIixcInJlY3RcIjp7XCJ4XCI6NDguMDUsXCJ5XCI6NjUuNSxcIndpZHRoXCI6MjA1LFwiaGVpZ2h0XCI6MjAwfX0se1wiaWRcIjpcIjE2NTkzMzQwOTg5MzBcIixcImluZGV4XCI6MSxcImF1ZGlvX3VybFwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8xNmViMDZhNmJlYjllNGZhNzdjOWI1ZDJkNjQzYWIyOS5tcDNcIixcIml0ZW1UeXBlXCI6XCJyZWN0XCIsXCJmb250U2NhbGVcIjoxLjYxOTUzMTI1LFwiaW1nU2NhbGVcIjoxLFwiaW1nU2l6ZVdcIjowLFwiaW1nU2l6ZUhcIjowLFwibWFwU2NhbGVcIjoxLjYxOTUzMTI1LFwiZHJhZ0RvdFwiOntcInhcIjoxMDM2LjUsXCJ5XCI6Mzg3LjV9LFwiZ0lkeFwiOlwiMFwiLFwibGFiZWxUZXh0XCI6XCIxXCIsXCJwb3NYXCI6MTIxMi41LFwicG9zWVwiOjY0My41LFwic2tlSnNvbkRhdGFcIjp7XCJ1cmxcIjpcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vNjc5ZmVkMjZkYWE0NjQ4MTlkNTUzZGU2MzMxYjM1NTIuanNvblwiLFwibmFtZVwiOlwiYWxpZW4tcHJvLmpzb25cIn0sXCJ0ZXhKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS82NWQ4MjE0YzZiNWM1ZDA0OTZlMTdhZGIwNDA4Mjc2YS5hdGxhc1wiLFwibmFtZVwiOlwiYWxpZW4tcHJvLmF0bGFzXCJ9LFwidGV4UG5nRGF0YVwiOntcInVybFwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9hMzE5YjM3Mjg5OTIzOTMyNWI5MGJiNGVjMDdiNDk3MC5wbmdcIixcIm5hbWVcIjpcImFsaWVuLXByby5wbmdcIn0sXCJhbmltVHlwZVwiOlwic3BpbmVcIixcInJlY3RcIjp7XCJ4XCI6Mzc1LjU2LFwieVwiOjU0My41LFwid2lkdGhcIjoyMDAsXCJoZWlnaHRcIjoyMDB9fV19XG5cdFx0Ly8gcmV0dXJuIGRlZmF1bHREYXRhO1xuXHR9LFxuXG5cdHByZWxvYWRJdGVtKCkge1xuXHRcdHRoaXMuYWRkUHJlbG9hZEltYWdlKCk7XG5cdFx0dGhpcy5hZGRQcmVsb2FkQXVkaW8oKTtcblx0XHR0aGlzLmFkZFByZWxvYWRBbmltYSgpO1xuXHRcdHRoaXMucHJlbG9hZCgpO1xuXHR9LFxuXG5cblx0YWRkUHJlbG9hZEltYWdlKCkge1xuXG5cdFx0dGhpcy5faW1hZ2VSZXNMaXN0LnB1c2goeyB1cmw6IHRoaXMuZGF0YS5iZ0l0ZW0udXJsfSk7XG5cblx0XHRmb3IgKGNvbnN0IHEgb2YgdGhpcy5kYXRhLmhvdFpvbmVJdGVtQXJyKSB7XG5cdFx0XHRpZiAocS5nSWR4ID09JzAnKSB7XG5cdFx0XHRcdHRoaXMuX2ltYWdlUmVzTGlzdC5wdXNoKHsgdXJsOiBxLnRleFBuZ0RhdGEudXJsfSk7XG5cdFx0XHR9XG5cblx0XHRcdGlmIChxLmdJZHggPT0nMScpIHtcblx0XHRcdFx0dGhpcy5faW1hZ2VSZXNMaXN0LnB1c2goeyB1cmw6IHEudGV4UG5nRGF0YS51cmwgfSk7XG5cdFx0XHR9XG5cdFx0XHRpZiAocS5nSWR4ID09JzInKSB7XG5cdFx0XHRcdHRoaXMuX2ltYWdlUmVzTGlzdC5wdXNoKHsgdXJsOiBxLnBpY191cmx9KTtcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdHByZXBhcmVBdWRpb0NsaXAodXJsLCBrZXkpIHtcblx0XHRpZiAodXJsKSB7XG5cdFx0XHRjYy5hc3NldE1hbmFnZXIubG9hZFJlbW90ZSh1cmwsIChlcnIsIGF1ZGlvQ2xpcCkgPT4ge1xuXHRcdFx0XHRpZiAoYXVkaW9DbGlwKSB7XG5cdFx0XHRcdFx0dGhpc1trZXldID0gYXVkaW9DbGlwO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9XG5cdH0sXG5cdGFkZFByZWxvYWRBdWRpbygpIHtcblxuXHRcdHRoaXMuX2F1ZGlvUmVzTGlzdC5wdXNoKHsgdXJsOiB0aGlzLmRhdGEuYmVnaW5fYXVkaW8gfSk7XG5cdFx0Ly8gdGhpcy5wcmVwYXJlQXVkaW9DbGlwKHRoaXMuZGF0YS5iZWdpbl9hdWRpbzEsICdiZWdpbl9hdWRpbzEnKVxuXHRcdC8vIHRoaXMuX2F1ZGlvUmVzTGlzdC5wdXNoKHsgdXJsOiB0aGlzLmRhdGEuYmVnaW5fYXVkaW8yIH0pO1xuXHRcdC8vIHRoaXMucHJlcGFyZUF1ZGlvQ2xpcCh0aGlzLmRhdGEuYmVnaW5fYXVkaW8yLCAnYmVnaW5fYXVkaW8yJylcblx0XHR0aGlzLl9hdWRpb1Jlc0xpc3QucHVzaCh7IHVybDogdGhpcy5kYXRhLmd1aWRlX2F1ZGlvIH0pO1xuXHRcdHRoaXMuX2F1ZGlvUmVzTGlzdC5wdXNoKHsgdXJsOiB0aGlzLmRhdGEucGxheWluZ19hdWRpbyB9KTtcblx0XHRpZiAodGhpcy5kYXRhLndyb25nX2F1ZGlvKSB7XG5cdFx0XHR0aGlzLl9hdWRpb1Jlc0xpc3QucHVzaCh7IHVybDogdGhpcy5kYXRhLndyb25nX2F1ZGlvIH0pO1xuXHRcdFx0dGhpcy53cm9uZ0F1ZGlvID0gdGhpcy5kYXRhLndyb25nX2F1ZGlvXG5cdFx0fVxuXHRcdGlmICh0aGlzLmRhdGEucmlnaHRfYXVkaW8pIHtcblx0XHRcdHRoaXMuX2F1ZGlvUmVzTGlzdC5wdXNoKHsgdXJsOiB0aGlzLmRhdGEucmlnaHRfYXVkaW8gfSk7XG5cdFx0XHR0aGlzLnJpZ2h0QXVkaW8gPSB0aGlzLmRhdGEucmlnaHRfYXVkaW9cblx0XHR9XG5cdFx0dGhpcy5fYXVkaW9SZXNMaXN0LnB1c2goeyB1cmw6IHRoaXMuZGF0YS53cm9uZ19hdWRpbzEgfSk7XG5cdFx0dGhpcy5fYXVkaW9SZXNMaXN0LnB1c2goeyB1cmw6IHRoaXMuZGF0YS53cm9uZ19hdWRpbzIgfSk7XG5cdFx0dGhpcy5fYXVkaW9SZXNMaXN0LnB1c2goeyB1cmw6IHRoaXMuZGF0YS5lbmRfYXVkaW8gfSk7XG5cblxuXHRcdGZvciAoY29uc3QgcSBvZiB0aGlzLmRhdGEuaG90Wm9uZUl0ZW1BcnIpIHtcblx0XHRcdGlmIChxLmdJZHggPT0nMCcpIHtcblx0XHRcdFx0dGhpcy5fYXVkaW9SZXNMaXN0LnB1c2goeyB1cmw6IHEuYXVkaW9fdXJsIH0pO1xuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0ZGVidWdQb2ludGVyKCkge1xuXHRcdGNvbnN0IGJveERlYnVnZ2VyID0gY2MuZmluZCgnQ2FudmFzL2JveC1kZWJ1Z2dlcicpO1xuXHRcdGlmICghdGhpcy5pc0RlYnVnKSB7XG5cdFx0XHRib3hEZWJ1Z2dlci5hY3RpdmUgPSBmYWxzZTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0aWYgKCF0aGlzLlBPSU5URVJfTk9ERSkge1xuXHRcdFx0dGhpcy5QT0lOVEVSX05PREUgPSBuZXcgY2MuTm9kZSgpO1xuXHRcdFx0dGhpcy5QT0lOVEVSX05PREUucGFyZW50ID0gYm94RGVidWdnZXI7XG5cdFx0XHR0aGlzLlBPSU5URVJfTk9ERS5uYW1lID0gJ1BPSU5URVJfTk9ERSdcblx0XHRcdHRoaXMuUE9JTlRFUl9OT0RFLmFkZENvbXBvbmVudChjYy5HcmFwaGljcyk7XG5cdFx0fVxuXHRcdGNvbnN0IGdyYXAgPSB0aGlzLlBPSU5URVJfTk9ERS5nZXRDb21wb25lbnQoY2MuR3JhcGhpY3MpO1xuXHRcdGdyYXAuY2xlYXIoKTtcblx0XHRjb25zdCBncm91bmQgPSBjYy5maW5kKCdDYW52YXMvZnJhbWUtYm9yZGVyL2dyb3VuZCcpO1xuXHRcdGNvbnN0IHt3aWR0aDogYmFzZVcsIGhlaWdodDogYmFzZUh9ID0gZ3JvdW5kO1xuXHRcdGNvbnN0IHt4OiBweCwgeTogcHl9ID0gdGhpcy5fbGFzdEZpbmdlclBvc2l0aW9uLnBvcztcblx0XHRsZXQgeCA9IGJhc2VXICogcHggLSBiYXNlVyAvIDI7XG5cdFx0bGV0IHkgPSBiYXNlSCAtIChiYXNlSCAqIHB5KSAtIGJhc2VIIC8gMiAtIDE2O1xuXHRcdGNvbnN0IHBuID0gbmV3IGNjLk5vZGUoKTtcblx0XHRcblx0XHRncmFwLmZpbGxDb2xvcj1jYy5jb2xvcigyNTUsIDAsIDApO1xuXHRcdGdyYXAuY2lyY2xlKHgsIHksIDMyKTtcblx0XHRncmFwLmZpbGwoKTtcblx0XHRncmFwLnN0cm9rZSgpO1xuXHR9LFxuXHRkZWJ1Z0dyYXBoaWNzKCkge1xuXHRcdGNvbnN0IGJveERlYnVnZ2VyID0gY2MuZmluZCgnQ2FudmFzL2JveC1kZWJ1Z2dlcicpO1xuXHRcdGlmICghdGhpcy5pc0RlYnVnKSB7XG5cdFx0XHRib3hEZWJ1Z2dlci5hY3RpdmUgPSBmYWxzZTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Ym94RGVidWdnZXIuYWN0aXZlID0gdHJ1ZTtcblx0XHRjb25zb2xlLmxvZygnc2hvdyBkZWJ1ZyBncmFwaGljcycpO1xuXHRcdGNvbnN0IGdyb3VuZCA9IGNjLmZpbmQoJ0NhbnZhcy9mcmFtZS1ib3JkZXIvZ3JvdW5kJyk7XG5cdFx0Y29uc3QgY2FudmFzID0gY2MuZmluZCgnQ2FudmFzJyk7XG5cdFx0Y29uc3Qge3dpZHRoOiBiYXNlVywgaGVpZ2h0OiBiYXNlSH0gPSBncm91bmQ7XG5cdFx0Y29uc3Qge3dpZHRoOiBiZ1csIGhlaWdodDogYmdIfSA9IHRoaXMuZGF0YS5iZ0l0ZW0ucmVjdFxuXHRcdGNvbnN0IHNjYWxlWCA9IGJnVyAvIGJhc2VXO1xuXHRcdGNvbnN0IHNjYWxlWSA9IGJnSCAvIGJhc2VIO1xuXHRcdGxldCBhZGRlZCAgPWZhbHNlXG5cdFx0dGhpcy5kYXRhLmhvdFpvbmVJdGVtQXJyLmZvckVhY2goYXJlYSA9PiB7XG5cdFx0XHRcblx0XHRcdGlmIChhZGRlZCkge1xuXHRcdFx0XHQvLyByZXR1cm5cblx0XHRcdH1cblx0XHRcdGlmIChhcmVhLmdJZHggIT0gJzAnKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdGFkZGVkID0gdHJ1ZTtcblx0XHRcdGNvbnN0IGRuID0gbmV3IGNjLk5vZGUoKTtcblx0XHRcdGNvbnN0IGxibE5vZGUgPSBuZXcgY2MuTm9kZSgpO1xuXHRcdFx0bGJsTm9kZS5wYXJlbnQgPSBkblxuXHRcdFx0Y29uc3QgbGJsID0gbGJsTm9kZS5hZGRDb21wb25lbnQoY2MuTGFiZWwpO1xuXHRcdFx0bGJsTm9kZS5jb2xvciA9IGNjLmNvbG9yKDAsMCwwKVxuXHRcdFx0bGJsLnN0cmluZyA9IGFyZWEuc2tlSnNvbkRhdGEubmFtZS5zdWJzdHJpbmcoMCwgYXJlYS5za2VKc29uRGF0YS5uYW1lLmxlbmd0aCAtIDkpXG5cdFx0XHRkbi5uYW1lID0gbGJsLnN0cmluZztcblx0XHRcdGRuLnBhcmVudCA9IGJveERlYnVnZ2VyO1xuXHRcdFx0ZG4ud2lkdGggPSBiYXNlVztcblx0XHRcdGRuLmhlaWdodCA9IGJhc2VIO1xuXHRcdFx0XG5cdFx0XHRjb25zdCBncmFwID0gZG4uYWRkQ29tcG9uZW50KGNjLkdyYXBoaWNzKTtcblx0XHRcdGNvbnN0IHIgPSBSYW5kb21JbnQoMSwyNTUpXG5cdFx0XHRjb25zdCBnID0gUmFuZG9tSW50KDEsMjU1KVxuXHRcdFx0Y29uc3QgYiA9IFJhbmRvbUludCgxLDI1NSlcblx0XHRcdGdyYXAuZmlsbENvbG9yPWNjLmNvbG9yKHIsIGcsIGIsIDEyNyk7XG5cdFx0XHRjb25zdCB7eDogcngsIHk6IHJ5LCB3aWR0aDogcncsIGhlaWdodDogcmh9ID0gIGFyZWEucmVjdDtcblx0XHRcdGxldCB3ID0gKHJ3IC8gYmdXKSAqIGJhc2VXO1xuXHRcdFx0bGV0IGggPSAocmggLyBiZ0gpICogYmFzZUg7XG5cdFx0XHRsZXQgeCA9IChyeCAvIGJnVykgKiBiYXNlVyAtIGJhc2VXIC8gMjtcblx0XHRcdGxldCB5ID0gYmFzZUggLSAoKHJ5IC8gYmdIKSAqIGJhc2VIKSAtIGggLSBiYXNlSCAvIDI7XG5cdFx0XHQvLyB3ICo9IHNjYWxlWFxuXHRcdFx0Ly8gaCAqPSBzY2FsZVlcblx0XHRcdC8vIHggKj0gc2NhbGVYXG5cdFx0XHQvLyB5ICo9IHNjYWxlWVxuICAgICAgICAgICAgLy8gY29uc3QgcCA9IGJveERlYnVnZ2VyLmNvbnZlcnRUb05vZGVTcGFjZUFSKGNjLnYyKHgseSkpO1xuXHRcdFx0Ly8geCA9IHAueDtcblx0XHRcdC8vIHkgPSBwLnk7XG5cdFx0XHRsYmxOb2RlLnggPSB4O1xuXHRcdFx0bGJsTm9kZS55ID0geSArIGg7XG5cdFx0XHQvLyBkbi5zY2FsZVggPSBzY2FsZVg7XG5cdFx0XHQvLyBkbi5zY2FsZVkgPSBzY2FsZVk7XG5cdFx0XHQvLyBkbi5zY2FsZSA9IGFyZWEubWFwU2NhbGU7IC8vIG1pblNjYWxlOyAvLyB0aGlzLl9tYXBTY2FsZU1heCAqIGFyZWEubWFwU2NhbGU7IC8vIDtcblx0XHRcdGNvbnNvbGUubG9nKCdbZGVidWddJywgYXJlYS5za2VKc29uRGF0YS5uYW1lLCB4LCB5LCB3LCBoKTtcblx0XHRcdGdyYXAuZmlsbFJlY3QoeCwgeSwgdywgaCk7XG5cdFx0XHRncmFwLnN0cm9rZSgpO1xuXHRcdFx0XG5cdFx0fSk7XG5cblx0fSxcblx0YWRkUHJlbG9hZEFuaW1hKCkge1xuXG5cdH0sXG5cblx0cHJlbG9hZCgpIHtcblxuXHRcdGNvbnN0IHByZWxvYWRBcnIgPSB0aGlzLl9pbWFnZVJlc0xpc3QuY29uY2F0KHRoaXMuX2F1ZGlvUmVzTGlzdCkuY29uY2F0KHRoaXMuX2FuaW1hUmVzTGlzdCk7XG5cdFx0Ly8gY29uc29sZS5sb2cocHJlbG9hZEFycik7XG5cdFx0Y2MuYXNzZXRNYW5hZ2VyLmxvYWRBbnkocHJlbG9hZEFyciwgbnVsbCwgKGYsIHQsIGl0ZW0pID0+IHtcblx0XHRcdC8vIGNvbnNvbGUubG9nKGYsIHQsIGl0ZW0pXG5cdFx0fSwgKGVyciwgZGF0YSkgPT4ge1xuXHRcdFx0Ly8gY29uc29sZS5sb2coZXJyLCBkYXRhKTtcblx0XHRcdGNvbnN0IGdyb3VuZCA9IGNjLmZpbmQoYENhbnZhcy9mcmFtZS1ib3JkZXIvZ3JvdW5kYCk7XG5cdFx0XHRjb25zdCBncm91bmRCZyA9IGNjLmZpbmQoYENhbnZhcy9mcmFtZS1ib3JkZXIvZ3JvdW5kL2JnYCk7XG5cdFx0XHRncm91bmRCZy5hY3RpdmUgPSBmYWxzZTtcblx0XHRcdGNvbnN0IGJhc2VSZWN0ID0gdGhpcy5kYXRhLmJnSXRlbS5yZWN0O1xuXHRcdFx0Z2V0U3ByaXRlRnJpbWVCeVVybCh0aGlzLmRhdGEuYmdJdGVtLnVybCwgKHNmKSA9PiB7XG5cdFx0XHRcdGNvbnN0IGdzID0gZ3JvdW5kQmcuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSk7XG5cdFx0XHRcdGdzLnNwcml0ZUZyYW1lID0gc2Y7XG5cdFx0XHRcdGdyb3VuZEJnLmFjdGl2ZSA9IHRydWU7XG5cblx0XHRcdFx0bGV0IGRiQ291bnQgPSAwO1xuXHRcdFx0XHRsZXQgZmluaXNoRGJDb3VudCA9IDBcblx0XHRcdFx0Zm9yKGNvbnN0IGJsb2NrIG9mIHRoaXMuZGF0YS5ob3Rab25lSXRlbUFycikge1xuXHRcdFx0XHRcdGlmIChibG9jay5nSWR4ID09ICcwJyB8fCBibG9jay5nSWR4ID09ICcxJykge1xuXHRcdFx0XHRcdFx0ZGJDb3VudCsrO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRmb3IoY29uc3QgYmxvY2sgb2YgdGhpcy5kYXRhLmhvdFpvbmVJdGVtQXJyKSB7XG5cblx0XHRcdFx0XHRcblx0XHRcdFx0XHRpZiAoYmxvY2suZ0lkeCA9PSAnMicpIHtcblx0XHRcdFx0XHRcdGNvbnN0IHMxID0gKChncm91bmQud2lkdGggIC8gYmxvY2suaW1nU2l6ZVcpICsgKGdyb3VuZC5oZWlnaHQgIC8gYmxvY2suaW1nU2l6ZUgpKSAvIDJcblx0XHRcdFx0XHRcdGNvbnN0IG5vZGUgPSBuZXcgY2MuTm9kZSgpO1xuXHRcdFx0XHRcdFx0bm9kZS5wYXJlbnQgPSBncm91bmQ7XG5cdFx0XHRcdFx0XHRjb25zdCBzcHIgPSBub2RlLmFkZENvbXBvbmVudChjYy5TcHJpdGUpO1xuXHRcdFx0XHRcdFx0Z2V0U3ByaXRlRnJpbWVCeVVybChibG9jay5waWNfdXJsLCAoc2YpID0+IHtcblx0XHRcdFx0XHRcdHNwci5zcHJpdGVGcmFtZSA9IHNmO1xuXHRcdFx0XHRcdFx0bm9kZS5zY2FsZSA9IHMxO1xuXHRcdFx0XHRcdFx0fSlcblxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAoYmxvY2suZ0lkeCA9PSAnMCcgfHwgYmxvY2suZ0lkeCA9PSAnMScpIHtcblxuXHRcdFx0XHRcdFx0Y29uc3QgbiA9IG5ldyBjYy5Ob2RlKCk7XG5cdFx0XHRcdFx0XHQvLyBuLnNjYWxlID0gMC4yNTtcblx0XHRcdFx0XHRcdG4uc2NhbGUgPSBncm91bmQud2lkdGggLyBncm91bmRCZy53aWR0aDtcblxuXHRcdFx0XHRcdFx0bi5wYXJlbnQgPSBncm91bmQ7XG5cdFx0XHRcdFx0XHRuLmFjdGl2ZSA9IGZhbHNlO1xuXG5cdFx0XHRcdFx0XHRpZiAoYmxvY2suYW5pbVR5cGUgPT0gJ3NwaW5lJykge1xuXHRcdFx0XG5cdFx0XHRcdFx0XHRcdGNvbnN0IHNrZWxldG9uID0gbi5hZGRDb21wb25lbnQoc3AuU2tlbGV0b24pO1xuXHRcdFx0XHRcdFx0XHRuLmlzU3BpbmUgPSB0cnVlO1xuXG5cdFx0XHRcdFx0XHRcdGxvYWRTcGluZShza2VsZXRvbiwgYmxvY2sudGV4UG5nRGF0YS5uYW1lLCB7XG5cdFx0XHRcdFx0XHRcdFx0dGV4OiBibG9jay50ZXhQbmdEYXRhLnVybCwgXG5cdFx0XHRcdFx0XHRcdFx0YXRsYXM6IGJsb2NrLnRleEpzb25EYXRhLnVybCxcblx0XHRcdFx0XHRcdFx0XHRza2U6IGJsb2NrLnNrZUpzb25EYXRhLnVybCxcblx0XHRcdFx0XHRcdFx0fSkudGhlbigoe3dpZHRoLCBoZWlnaHR9KSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0bi53aWR0aCA9IHdpZHRoO1xuXHRcdFx0XHRcdFx0XHRcdG4uaGVpZ2h0ID0gaGVpZ2h0O1x0XG5cdFx0XHRcdFx0XHRcdFx0bi5hY3RpdmUgPSB0cnVlO1xuXHRcdFx0XHRcdFx0XHRcdC8vIGRiLnBsYXlBbmltYXRpb24oJ251bGwnLCAwKTtcblx0XHRcdFx0XHRcdFx0XHQvLyBza2VsZXRvbi5zZXRUb1NldHVwUG9zZSgpO1xuXHRcdFx0XHRcdFx0XHRcdC8vIHNrZWxldG9uLnNldEFuaW1hdGlvbigwLCAnZW5sYXJnZScsIHRydWUpO1x0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5fYWxsQW5pbWF0aW9uTm9kZXMucHVzaChuKTtcblx0XHRcdFx0XHRcdFx0XHRmaW5pc2hEYkNvdW50Kys7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coZmluaXNoRGJDb3VudCwgZGJDb3VudClcblx0XHRcdFx0XHRcdFx0XHRpZiAoZmluaXNoRGJDb3VudCA9PSBkYkNvdW50KSB7XG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLmxvYWRFbmQoKTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH0pLmNhdGNoKCgpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRmaW5pc2hEYkNvdW50Kys7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coZmluaXNoRGJDb3VudCwgZGJDb3VudClcblx0XHRcdFx0XHRcdFx0XHRpZiAoZmluaXNoRGJDb3VudCA9PSBkYkNvdW50KSB7XG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLmxvYWRFbmQoKTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XG5cdFx0XHRcdFx0XHRcdGNvbnN0IGRiID0gbi5hZGRDb21wb25lbnQoZHJhZ29uQm9uZXMuQXJtYXR1cmVEaXNwbGF5KTtcblxuXHRcdFx0XHRcdFx0XHRsb2FkRHJhZ29uQm9uZXMoZGIsIHtcblx0XHRcdFx0XHRcdFx0XHR0ZXg6IGJsb2NrLnRleFBuZ0RhdGEudXJsLCBcblx0XHRcdFx0XHRcdFx0XHRhdGxhczogYmxvY2sudGV4SnNvbkRhdGEudXJsLFxuXHRcdFx0XHRcdFx0XHRcdHNrZTogYmxvY2suc2tlSnNvbkRhdGEudXJsLFxuXHRcdFx0XHRcdFx0XHR9KS50aGVuKCh7d2lkdGgsIGhlaWdodH0pID0+IHtcblx0XHRcdFx0XHRcdFx0XHRuLndpZHRoID0gd2lkdGg7XG5cdFx0XHRcdFx0XHRcdFx0bi5oZWlnaHQgPSBoZWlnaHQ7XHRcblx0XHRcdFx0XHRcdFx0XHRuLmFjdGl2ZSA9IHRydWU7XG5cdFx0XHRcdFx0XHRcdFx0ZGIucGxheUFuaW1hdGlvbignbnVsbCcsIDApO1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMuX2FsbEFuaW1hdGlvbk5vZGVzLnB1c2gobik7XG5cdFx0XHRcdFx0XHRcdFx0ZmluaXNoRGJDb3VudCsrO1xuXHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKGZpbmlzaERiQ291bnQsIGRiQ291bnQpXG5cdFx0XHRcdFx0XHRcdFx0aWYgKGZpbmlzaERiQ291bnQgPT0gZGJDb3VudCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5sb2FkRW5kKCk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9KS5jYXRjaCgoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0ZmluaXNoRGJDb3VudCsrO1xuXHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKGZpbmlzaERiQ291bnQsIGRiQ291bnQpXG5cdFx0XHRcdFx0XHRcdFx0aWYgKGZpbmlzaERiQ291bnQgPT0gZGJDb3VudCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5sb2FkRW5kKCk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XG5cblx0XHRcdFx0XHRcdGlmIChibG9jay5nSWR4ID09ICcwJykge1xuXHRcdFx0XHRcdFx0XHRjb25zdCByZWN0SW5mbyA9IHtcblx0XHRcdFx0XHRcdFx0XHRub2RlOiBuLFxuXHRcdFx0XHRcdFx0XHRcdGF1ZGlvX3VybDogYmxvY2suYXVkaW9fdXJsICxcblx0XHRcdFx0XHRcdFx0XHRyZWN0OiB7XG5cdFx0XHRcdFx0XHRcdFx0XHR4OiBibG9jay5yZWN0LnggLyBiYXNlUmVjdC53aWR0aCxcblx0XHRcdFx0XHRcdFx0XHRcdHk6IGJsb2NrLnJlY3QueSAvIGJhc2VSZWN0LmhlaWdodCxcblx0XHRcdFx0XHRcdFx0XHRcdHdpZHRoOiBibG9jay5yZWN0LndpZHRoIC8gYmFzZVJlY3Qud2lkdGgsXG5cdFx0XHRcdFx0XHRcdFx0XHRoZWlnaHQ6IGJsb2NrLnJlY3QuaGVpZ2h0IC8gYmFzZVJlY3QuaGVpZ2h0LFxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRcdFx0dGhpcy5fZmlndXJlUG9pbnRSZWN0QXJyYXkucHVzaChyZWN0SW5mbyk7XG5cblx0XHRcdFx0XHRcdFx0Ly8gdGhpcy5hZGRSZWN0Tm9kZUxpc3RlbmVyKGJsb2NrKTtcblx0XHRcblx0XHRcdFx0XHRcdFx0aWYgKGJsb2NrLmxhYmVsVGV4dCkge1xuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IGsgPSArYmxvY2subGFiZWxUZXh0ICogMTAwMDtcblx0XHRcdFx0XHRcdFx0XHRpZighaXNOYU4oaykpIHtcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuX2hpbnRzTm9kZUxpc3QucHVzaCh7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdG5vZGU6IG4sXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGFmdGVyOiBrXG5cdFx0XHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdFx0XG5cdFx0XHQvLyBjb25zb2xlLmxvZyh0aGlzLmRhdGEpO1xuXHRcdFx0Y29uc29sZS5sb2coJ3Jlc291cmNlIHBlcmxvYWQgZmluaXNoJyk7XG5cbi8vIDw8PDw8PDwgSEVBRFxuLy8gPT09PT09PVxuLy8gXHRcdFx0aWYgKHdpbmRvdyAmJiB3aW5kb3dbXCJhaXJcIl0pIHtcbi8vIFx0XHRcdFx0Ly8gY2MuZmluZCgnQ2FudmFzJykub3BhY2l0eSA9IDA7XG4vLyBcdFx0XHRcdHdpbmRvdy5haXIub25Db3Vyc2VJblNjcmVlbiA9IChuZXh0KSA9PiB7XG4vLyBcdFx0XHRcdFx0Ly8gY2MuZmluZCgnQ2FudmFzJykub3BhY2l0eSA9IDI1NTtcbi8vIFx0XHRcdFx0XHR0aGlzLmxvYWRFbmQoKTtcbi8vIFx0XHRcdFx0XHRuZXh0KCk7XG4vLyBcdFx0XHRcdH1cbi8vIFx0XHRcdFx0d2luZG93LmFpci5oaWRlQWlyQ2xhc3NMb2FkaW5nKCk7XG4vLyBcdFx0XHR9IGVsc2Uge1xuLy8gXHRcdFx0XHR0aGlzLmxvYWRFbmQoKTtcbi8vIFx0XHRcdH1cbi8vID4+Pj4+Pj4gMmQ0NjFlMTkxMDU3MWJjZmM2YWQ0ZGM5M2MyY2VkYWZjMjA5MjNlYVxuXG5cdFx0XHRjYy5kZWJ1Zy5zZXREaXNwbGF5U3RhdHMoZmFsc2UpO1xuXHRcdH0pO1xuXHR9LFxuXG5cblx0bG9hZEVuZCgpIHtcblx0XHRpZiAod2luZG93ICYmIHdpbmRvd1tcImFpclwiXSAmJiB3aW5kb3dbXCJhaXJcIl0uaGlkZUFpckNsYXNzTG9hZGluZykge1xuXHRcdFx0d2luZG93W1wiYWlyXCJdLmhpZGVBaXJDbGFzc0xvYWRpbmcoKTtcblx0XHR9XG5cdFx0dGhpcy5pbml0RGF0YSgpO1xuXHRcdC8vIHRoaXMuaW5pdEF1ZGlvKCk7XG5cdFx0Ly8gdGhpcy5pbml0VmlldygpO1xuXHRcdHRoaXMuaW5pdEJnKCk7XG5cdFx0Ly8gdGhpcy5pbml0TGlzdGVuZXIoKTtcblx0XHR0aGlzLmRlYnVnR3JhcGhpY3MoKTtcblx0XHR0aGlzLmNyZWF0ZVN0YXRlTWFjaGluZSgpO1xuXHR9LFxuXG5cdF9jYW50b3VjaDogbnVsbCxcblx0aW5pdERhdGEoKSB7XG5cdFx0Ly8g5omA5pyJ5YWo5bGA5Y+Y6YePIOm7mOiupOmDveaYr251bGwgXG5cdFx0dGhpcy5fY2FudG91Y2ggPSB0cnVlO1xuXHR9LFxuXG5cdC8vIGF1ZGlvQnRuOiBudWxsLFxuXHQvLyBpbml0QXVkaW8oKSB7XG5cdC8vIFx0Y29uc3QgYXVkaW9Ob2RlID0gY2MuZmluZCgnQ2FudmFzL3Jlcy9hdWRpbycpO1xuXG5cdC8vIFx0Y29uc3QgZ2V0QXVkaW9CeVJlc05hbWUgPSAocmVzTmFtZSkgPT4ge1xuXHQvLyBcdFx0cmV0dXJuIGF1ZGlvTm9kZS5nZXRDaGlsZEJ5TmFtZShyZXNOYW1lKS5nZXRDb21wb25lbnQoY2MuQXVkaW9Tb3VyY2UpO1xuXHQvLyBcdH1cblxuXHQvLyBcdHRoaXMuYXVkaW9CdG4gPSBnZXRBdWRpb0J5UmVzTmFtZSgnYnRuJyk7XG5cblx0Ly8gfSxcblxuXG5cdC8vIGluaXRWaWV3KCkge1xuXG5cdC8vIFx0Ly8gdGhpcy5pbml0QmcoKTtcblx0Ly8gXHQvLyB0aGlzLmluaXRQaWMoKTtcblx0Ly8gXHQvLyB0aGlzLmluaXRCdG4oKTtcblx0Ly8gXHR0aGlzLmluaXRJY29uKCk7XG5cdC8vIH0sXG5cblx0YWRkUmVjdE5vZGVMaXN0ZW5lcihkYXRhKSB7XG5cblxuXHRcdGNvbnN0IGJnID0gY2MuZmluZChgQ2FudmFzL2ZyYW1lLWJvcmRlci9ncm91bmQvYmdgKS5wYXJlbnQ7XG5cblx0XHRjb25zdCByYXRlID0gKGJnLnNjYWxlICogYmcud2lkdGgpIC8gdGhpcy5kYXRhLmJnSXRlbS5yZWN0LndpZHRoO1xuXG5cdFx0Y29uc3QgcmVjdE5vZGUgPSBuZXcgY2MuTm9kZSgpO1xuXHRcdHJlY3ROb2RlLm5hbWUgPSAncmVjdCcgKyBkYXRhLmluZGV4O1xuXHRcdGJnLmFkZENoaWxkKHJlY3ROb2RlLCAyMCk7XG5cblxuXHRcdGNvbnN0IGN0eCA9IHJlY3ROb2RlLmFkZENvbXBvbmVudChjYy5HcmFwaGljcyk7XG5cdFx0Ly8g57qi6Imy55+p5b2iXG5cdFx0Y3R4LmxpbmVXaWR0aCA9IDQ7XG5cdFx0Y3R4LnN0cm9rZUNvbG9yID0gY2MuQ29sb3IuQkxBQ0s7XG5cdFx0Y3R4LmZpbGxDb2xvciA9IGNjLkNvbG9yLldISVRFLnNldEEoMTAwKTtcblxuXHRcdGNvbnN0IHNjYWxlID0gcmF0ZSAvIGJnLnNjYWxlWTtcblxuXHRcdGNvbnNvbGUubG9nKCdzY2FsZX4gOiAnLCBzY2FsZSlcblxuXHRcdHJlY3ROb2RlLndpZHRoID0gZGF0YS5yZWN0LndpZHRoICogc2NhbGU7XG5cdFx0cmVjdE5vZGUuaGVpZ2h0ID0gZGF0YS5yZWN0LmhlaWdodCAqIHNjYWxlO1xuXHRcdHJlY3ROb2RlLnggPSAtYmcud2lkdGggLyAyICsgZGF0YS5yZWN0LnggKiBzY2FsZSArIGJnLng7XG5cdFx0cmVjdE5vZGUueSA9IGJnLmhlaWdodCAvIDIgLSBkYXRhLnJlY3QuaGVpZ2h0ICogc2NhbGUgLSBkYXRhLnJlY3QueSAqIHNjYWxlICsgYmcueTtcblxuXHRcdHJlY3ROb2RlLmFuY2hvclggPSByZWN0Tm9kZS5hbmNob3JZID0gMDtcblxuXHRcdGNvbnNvbGUubG9nKCdkYXRhOiAnLCBkYXRhKTtcblx0XHRjb25zb2xlLmxvZygncmVjdE5vZGU6ICcsIHJlY3ROb2RlKTtcblxuXG5cdFx0Ly8gaWYgKHBhZ2VEYXRhLmJnSXRlbS5pc1Nob3dEZWJ1Z0xpbmUpIHtcblx0XHRcdGN0eC5yZWN0KDAsIDAsIHJlY3ROb2RlLndpZHRoLCByZWN0Tm9kZS5oZWlnaHQpO1xuXHRcdFx0Ly8gY3R4LmZpbGxSZWN0KDAsIDAsIDIwMCwgMjAwKTtcblx0XHQvLyB9XG5cdFx0Y3R4LnN0cm9rZSgpO1xuXHRcdGN0eC5maWxsKCk7XG5cblx0XHRyZWN0Tm9kZS5hZGRDb21wb25lbnQoY2MuQnV0dG9uKTtcblx0XHRyZWN0Tm9kZS5vbihcImNsaWNrXCIsICgpID0+IHtcblx0XHRcdGNvbnNvbGUubG9nKFwiIGluIHJlY3ROb2RlIGNsaWNrXCIpO1xuXG5cblx0XHRcdGNvbnN0IF94ID0gcmVjdE5vZGUueCAvIGJnLndpZHRoO1xuXHRcdFx0Y29uc3QgX3kgPSByZWN0Tm9kZS55IC8gYmcuaGVpZ2h0O1xuXHRcdFx0Y29uc3QgX3cgPSByZWN0Tm9kZS53aWR0aCAvIGJnLndpZHRoO1xuXHRcdFx0Y29uc3QgX2ggPSByZWN0Tm9kZS5oZWlnaHQgLyBiZy5oZWlnaHQ7XG5cblx0XHRcdGNvbnN0IHBvcyA9IHtcblx0XHRcdFx0eDogX3ggKyBfdyAvIDIgKyAwLjUsXG5cdFx0XHRcdHk6IC0oX3kgKyBfaCAvIDIgLSAwLjUpXG5cdFx0XHR9XG5cdFx0XHR0aGlzLl9sYXN0RmluZ2VyUG9zaXRpb24gPSB7XG5cdFx0XHRcdHBvczogcG9zLFxuXHRcdFx0XHRkaXJ0eTogdHJ1ZVxuXHRcdFx0fTtcblxuXHRcdH0pXG5cblx0fSxcblxuXHRpbml0QmcoKSB7XG5cdFx0Y29uc3QgYmdOb2RlID0gY2MuZmluZCgnQ2FudmFzL2JnJyk7XG5cdFx0YmdOb2RlLnNjYWxlID0gdGhpcy5fbWFwU2NhbGVNYXg7XG5cdFx0Y29uc29sZS5sb2coJ3RoaXMuX21hcFNjYWxlTWF4JywgdGhpcy5fbWFwU2NhbGVNYXgpO1xuXHR9LFxuXG5cdFxuXHRcblxuXHQvKmluaXRCdG4oKSB7XG5cblx0XHR0aGlzLmN1clBhZ2UgPSAwO1xuXHRcdGNvbnN0IGJvdHRvbVBhcnQgPSBjYy5maW5kKCdDYW52YXMvYm90dG9tUGFydCcpO1xuXHRcdGJvdHRvbVBhcnQuekluZGV4ID0gNTsgLy8g5o+Q6auY5bGC57qnXG5cblx0XHRib3R0b21QYXJ0LnggPSBib3R0b21QYXJ0LnBhcmVudC53aWR0aCAvIDI7XG5cdFx0Ym90dG9tUGFydC55ID0gLWJvdHRvbVBhcnQucGFyZW50LmhlaWdodCAvIDI7XG5cblx0XHRjb25zdCBsZWZ0QnRuTm9kZSA9IGJvdHRvbVBhcnQuZ2V0Q2hpbGRCeU5hbWUoJ2J0bl9sZWZ0Jyk7XG5cdFx0Ly/oioLngrnkuK3mt7vliqDkuoZidXR0b27nu4Tku7Yg5YiZ5Y+v5Lul5re75YqgY2xpY2vkuovku7bnm5HlkKxcblx0XHRsZWZ0QnRuTm9kZS5vbignY2xpY2snLCAoKSA9PiB7XG5cdFx0XHRpZiAoIXRoaXMuX2NhbnRvdWNoKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdGlmICh0aGlzLmN1clBhZ2UgPT0gMCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHR0aGlzLmN1clBhZ2UgPSAwXG5cdFx0XHR0aGlzLmxlZnRNb3ZlKCk7XG5cblx0XHRcdC8vIOa4uOaIj+e7k+adn+aXtumcgOimgeiwg+eUqOi/meS4quaWueazlemAmuefpeezu+e7n+S9nOS4muWujOaIkFxuXHRcdFx0b25Ib21ld29ya0ZpbmlzaCgpO1xuXG5cdFx0XHRjYy5hdWRpb0VuZ2luZS5wbGF5KHRoaXMuYXVkaW9CdG4uY2xpcCwgZmFsc2UsIDAuOClcblx0XHR9KVxuXG5cdFx0Y29uc3QgcmlnaHRCdG5Ob2RlID0gYm90dG9tUGFydC5nZXRDaGlsZEJ5TmFtZSgnYnRuX3JpZ2h0Jyk7XG5cdFx0Ly/oioLngrnkuK3mt7vliqDkuoZidXR0b27nu4Tku7Yg5YiZ5Y+v5Lul5re75YqgY2xpY2vkuovku7bnm5HlkKxcblx0XHRyaWdodEJ0bk5vZGUub24oJ2NsaWNrJywgKCkgPT4ge1xuXHRcdFx0aWYgKCF0aGlzLl9jYW50b3VjaCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHRpZiAodGhpcy5jdXJQYWdlID09IDEpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHR0aGlzLmN1clBhZ2UgPSAxXG5cdFx0XHR0aGlzLnJpZ2h0TW92ZSgpO1xuXG5cdFx0XHRjYy5hdWRpb0VuZ2luZS5wbGF5KHRoaXMuYXVkaW9CdG4uY2xpcCwgZmFsc2UsIDAuNSlcblx0XHR9KVxuXHR9LCovXG5cblxuXG5cblx0Ly8gdXBkYXRlIChkdCkge30sXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXHRfdGltZW91dElkczogbnVsbCxcblx0X2ludGVydmFsSWRzOiBudWxsLFxuXHQvLyDnlJ/lkb3lkajmnJ9cblx0b25EZXN0cm95KCkge1xuXHRcdGNvbnNvbGUubG9nKCdvcDE1IG9uRGVzdHJveScpO1xuXHRcdHRoaXMuX3RpbWVvdXRJZHMuZm9yRWFjaChpZCA9PiB7XG5cdFx0XHRjbGVhclRpbWVvdXQoaWQpO1xuXHRcdH0pO1xuXHRcdHRoaXMuX2ludGVydmFsSWRzLmZvckVhY2goaWQgPT4ge1xuXHRcdFx0Y2xlYXJJbnRlcnZhbChpZCk7XG5cdFx0fSk7XG5cdFx0dGhpcy5nYW1lTWFjaGluZVNlcnZpY2Uuc3RvcENoaWxkKCk7XG5cdFx0dGhpcy5nYW1lTWFjaGluZVNlcnZpY2Uuc3RvcCgpO1xuXHRcdGlmKHdpbmRvdy5jb3Vyc2V3YXJlICYmIHdpbmRvdy5jb3Vyc2V3YXJlLmNsb3NlT3Ntb0ZpbmdlclJlYWQpIHtcblx0XHRcdGlmICh0aGlzLmlzT3BlbmVkT3Ntb0ZpbmdlclJlYWQpIHtcblx0XHRcdFx0d2luZG93LmNvdXJzZXdhcmUuY2xvc2VPc21vRmluZ2VyUmVhZCgpXG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXG5cblxuXG5cbn0pO1xuIl19 +//------QC-SOURCE-SPLIT------ - break; + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/OP15/script/util.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, 'ade7a9A1W1Ah7vGKIj+9VNT', 'util'); +// OP15/script/util.js - case Q: - this.stopChild(e.activity.id); - break; +"use strict"; - case nt: - var m = e.label, - S = e.value; - m ? this.logger(m, S) : this.logger(S); - } - }, n.prototype.removeChild = function (t) { - var e; - this.children["delete"](t), this.forwardTo["delete"](t), null === (e = this.state) || void 0 === e || delete e.children[t]; - }, n.prototype.stopChild = function (t) { - var e = this.children.get(t); - e && (this.removeChild(t), N(e.stop) && e.stop()); - }, n.prototype.spawn = function (t, n, r) { - if (w(t)) return this.spawnPromise(Promise.resolve(t), n); - if (N(t)) return this.spawnCallback(t, n); - if (function (t) { - try { - return "function" == typeof t.send; - } catch (t) { - return !1; - } - }(o = t) && "id" in o) return this.spawnActor(t, n); - if (function (t) { - try { - return "subscribe" in t && N(t.subscribe); - } catch (t) { - return !1; - } - }(t)) return this.spawnObservable(t, n); - if (k(t)) return this.spawnMachine(t, _e(_e({}, r), { - id: n - })); - if (null !== (i = t) && "object" == typeof i && "transition" in i && "function" == typeof i.transition) return this.spawnBehavior(t, n); - throw new Error('Unable to spawn entity "'.concat(n, '" of type "').concat(typeof t, '".')); - var i, o; - }, n.prototype.spawnMachine = function (t, r) { - var i = this; - void 0 === r && (r = {}); +exports.__esModule = true; +exports.getPosByAngle = getPosByAngle; +exports.getAngleByPos = getAngleByPos; +exports.exchangeNodePos = exchangeNodePos; +exports.RandomInt = RandomInt; +exports.randomSortByArr = randomSortByArr; +exports.setSprNodeMaxLen = setSprNodeMaxLen; +exports.localPosTolocalPos = localPosTolocalPos; +exports.worldPosToLocalPos = worldPosToLocalPos; +exports.getScaleRateBy2Node = getScaleRateBy2Node; +exports.getDistance = getDistance; +exports.playAudioByUrl = playAudioByUrl; +exports.btnClickAnima = btnClickAnima; +exports.getSpriteFrimeByUrl = getSpriteFrimeByUrl; +exports.getSprNode = getSprNode; +exports.getSprNodeByUrl = getSprNodeByUrl; +exports.playAudio = playAudio; +exports.asyncDelay = asyncDelay; +exports.showFireworks = showFireworks; +exports.asyncTweenTo = asyncTweenTo; +exports.asyncTweenBy = asyncTweenBy; +exports.showTrebleFirework = showTrebleFirework; +exports.onHomeworkFinish = onHomeworkFinish; +exports.loadDragonBones = loadDragonBones; +exports.loadSpine = loadSpine; +exports.FireworkSettings = void 0; - var o = new n(t, _e(_e({}, this.options), { - parent: this, - id: r.id || t.id - })), - a = _e(_e({}, Yt), r); +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - a.sync && o.onTransition(function (t) { - i.send(st, { - state: t, - id: o.id - }); - }); - var s = o; - return this.children.set(o.id, s), a.autoForward && this.forwardTo.add(o.id), o.onDone(function (t) { - i.removeChild(o.id), i.send(L(t, { - origin: o.id - })); - }).start(), s; - }, n.prototype.spawnBehavior = function (t, e) { - var n = Qt(t, { - id: e, - parent: this - }); - return this.children.set(e, n), n; - }, n.prototype.spawnPromise = function (t, e) { - var n, - r = this, - i = !1; - t.then(function (t) { - i || (n = t, r.removeChild(e), r.send(L(Nt(e, t), { - origin: e - }))); - }, function (t) { - if (!i) { - r.removeChild(e); - var n = At(e, t); - - try { - r.send(L(n, { - origin: e - })); - } catch (t) { - r.devTools && r.devTools.send(n, r.state), r.machine.strict && r.stop(); - } - } - }); - var o = { - id: e, - send: function send() {}, - subscribe: function subscribe(e, n, r) { - var i = z(e, n, r), - o = !1; - return t.then(function (t) { - o || (i.next(t), o || i.complete()); - }, function (t) { - o || i.error(t); - }), { - unsubscribe: function unsubscribe() { - return o = !0; - } - }; - }, - stop: function stop() { - i = !0; - }, - toJSON: function toJSON() { - return { - id: e - }; - }, - getSnapshot: function getSnapshot() { - return n; - } - }; - return this.children.set(e, o), o; - }, n.prototype.spawnCallback = function (t, e) { - var n, - r, - i = this, - o = !1, - a = new Set(), - s = new Set(); +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - try { - r = t(function (t) { - n = t, s.forEach(function (e) { - return e(t); - }), o || i.send(L(t, { - origin: e - })); - }, function (t) { - a.add(t); - }); - } catch (t) { - this.send(At(e, t)); - } +function getPosByAngle(angle, len) { + var radian = angle * Math.PI / 180; + var x = Math.sin(radian) * len; + var y = Math.cos(radian) * len; + return { + x: x, + y: y + }; +} - if (w(r)) return this.spawnPromise(r, e); - var c = { - id: e, - send: function send(t) { - return a.forEach(function (e) { - return e(t); - }); - }, - subscribe: function subscribe(t) { - return s.add(t), { - unsubscribe: function unsubscribe() { - s["delete"](t); - } - }; - }, - stop: function stop() { - o = !0, N(r) && r(); - }, - toJSON: function toJSON() { - return { - id: e - }; - }, - getSnapshot: function getSnapshot() { - return n; - } - }; - return this.children.set(e, c), c; - }, n.prototype.spawnObservable = function (t, e) { - var n, - r = this, - i = t.subscribe(function (t) { - n = t, r.send(L(t, { - origin: e - })); - }, function (t) { - r.removeChild(e), r.send(L(At(e, t), { - origin: e - })); - }, function () { - r.removeChild(e), r.send(L(Nt(e), { - origin: e - })); - }), - o = { - id: e, - send: function send() {}, - subscribe: function subscribe(e, n, r) { - return t.subscribe(e, n, r); - }, - stop: function stop() { - return i.unsubscribe(); - }, - getSnapshot: function getSnapshot() { - return n; - }, - toJSON: function toJSON() { - return { - id: e - }; - } - }; - return this.children.set(e, o), o; - }, n.prototype.spawnActor = function (t, e) { - return this.children.set(e, t), t; - }, n.prototype.spawnActivity = function (t) { - var e = this.machine.options && this.machine.options.activities ? this.machine.options.activities[t.type] : void 0; +function getAngleByPos(px, py, mx, my) { + var x = Math.abs(px - mx); + var y = Math.abs(py - my); + var z = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2)); + var cos = y / z; + var radina = Math.acos(cos); // 用å三角函数求弧度 - if (e) { - var n = e(this.state.context, t); - this.spawnEffect(t.id, n); - } - }, n.prototype.spawnEffect = function (t, e) { - this.children.set(t, { - id: t, - send: function send() {}, - subscribe: function subscribe() { - return { - unsubscribe: function unsubscribe() {} - }; - }, - stop: e || void 0, - getSnapshot: function getSnapshot() {}, - toJSON: function toJSON() { - return { - id: t - }; - } - }); - }, n.prototype.attachDev = function () { - var t = Gt(); + var angle = Math.floor(180 / (Math.PI / radina) * 100) / 100; // å°†å¼§åº¦è½¬æ¢æˆè§’度 - if (this.options.devTools && t) { - if (t.__REDUX_DEVTOOLS_EXTENSION__) { - var n = "object" == typeof this.options.devTools ? this.options.devTools : void 0; - this.devTools = t.__REDUX_DEVTOOLS_EXTENSION__.connect(_e(_e({ - name: this.id, - autoPause: !0, - stateSanitizer: function stateSanitizer(t) { - return { - value: t.value, - context: t.context, - actions: t.actions - }; - } - }, n), { - features: _e({ - jump: !1, - skip: !1 - }, n ? n.features : void 0) - }), this.machine), this.devTools.init(this.state); - } + if (mx > px && my > py) { + // é¼ æ ‡åœ¨ç¬¬å››è±¡é™ + angle = 180 - angle; + } - Kt(this); - } - }, n.prototype.toJSON = function () { - return { - id: this.id - }; - }, n.prototype[P] = function () { - return this; - }, n.prototype.getSnapshot = function () { - return this.status === t.InterpreterStatus.NotStarted ? this.initialState : this._state; - }, n.defaultOptions = function (t) { - return { - execute: !0, - deferEvents: !0, - clock: { - setTimeout: function (_setTimeout) { - function setTimeout(_x, _x2) { - return _setTimeout.apply(this, arguments); - } + if (mx === px && my > py) { + // é¼ æ ‡åœ¨yè½´è´Ÿæ–¹å‘上 + angle = 180; + } - setTimeout.toString = function () { - return _setTimeout.toString(); - }; + if (mx > px && my === py) { + // é¼ æ ‡åœ¨xè½´æ£æ–¹å‘上 + angle = 90; + } - return setTimeout; - }(function (t, e) { - return setTimeout(t, e); - }), - clearTimeout: function (_clearTimeout) { - function clearTimeout(_x3) { - return _clearTimeout.apply(this, arguments); - } + if (mx < px && my > py) { + // é¼ æ ‡åœ¨ç¬¬ä¸‰è±¡é™ + angle = 180 + angle; + } - clearTimeout.toString = function () { - return _clearTimeout.toString(); - }; + if (mx < px && my === py) { + // é¼ æ ‡åœ¨xè½´è´Ÿæ–¹å‘ + angle = 270; + } - return clearTimeout; - }(function (t) { - return clearTimeout(t); - }) - }, - logger: t.console.log.bind(console), - devTools: !1 - }; - }("undefined" != typeof self ? self : global), n.interpret = te, n; - }(); + if (mx < px && my < py) { + // é¼ æ ‡åœ¨ç¬¬äºŒè±¡é™ + angle = 360 - angle; + } // console.log('angle: ', angle); - function te(t, e) { - return new Zt(t, e); + + return angle; +} + +function exchangeNodePos(baseNode, targetNode) { + return baseNode.convertToNodeSpaceAR(targetNode._parent.convertToWorldSpaceAR(cc.v2(targetNode.x, targetNode.y))); +} + +function RandomInt(a, b) { + if (b === void 0) { + b = 0; } - var ee = { - raise: vt, - send: yt, - sendParent: gt, - sendUpdate: mt, - log: function log(t, e) { - return void 0 === t && (t = St), { - type: nt, - label: e, - expr: t - }; + var max = Math.max(a, b); + var min = Math.min(a, b); + return Math.floor(Math.random() * (max - min) + min); +} + +function randomSortByArr(arr) { + var newArr = []; + var tmpArr = arr.concat(); + + while (tmpArr.length > 0) { + var randomIndex = Math.floor(tmpArr.length * Math.random()); + newArr.push(tmpArr[randomIndex]); + tmpArr.splice(randomIndex, 1); + } + + return newArr; +} + +function setSprNodeMaxLen(sprNode, maxW, maxH) { + var sx = maxW / sprNode.width; + var sy = maxH / sprNode.height; + var s = Math.min(sx, sy); + sprNode.scale = Math.round(s * 1000) / 1000; +} + +function localPosTolocalPos(baseNode, targetNode) { + var worldPos = targetNode.parent.convertToWorldSpaceAR(cc.v2(targetNode.x, targetNode.y)); + var localPos = baseNode.parent.convertToNodeSpaceAR(cc.v2(worldPos.x, worldPos.y)); + return localPos; +} + +function worldPosToLocalPos(worldPos, baseNode) { + var localPos = baseNode.parent.convertToNodeSpaceAR(cc.v2(worldPos.x, worldPos.y)); + return localPos; +} + +function getScaleRateBy2Node(baseNode, targetNode, maxFlag) { + if (maxFlag === void 0) { + maxFlag = true; + } + + var worldRect1 = targetNode.getBoundingBoxToWorld(); + var worldRect2 = baseNode.getBoundingBoxToWorld(); + var sx = worldRect1.width / worldRect2.width; + var sy = worldRect1.height / worldRect2.height; + + if (maxFlag) { + return Math.max(sx, sy); + } else { + return Math.min(sx, sy); + } +} + +function getDistance(start, end) { + var pos = cc.v2(start.x - end.x, start.y - end.y); + var dis = Math.sqrt(pos.x * pos.x + pos.y * pos.y); + return dis; +} + +function playAudioByUrl(audio_url, cb) { + if (cb === void 0) { + cb = null; + } + + if (audio_url) { + if (audio_url instanceof cc.AudioClip && audio_url.constructor.name == 'cc_AudioClip') { + var audioId = cc.audioEngine.play(audio_url, false, 0.8); + + if (cb) { + cc.audioEngine.setFinishCallback(audioId, function () { + cb(); + }); + } + } else { + cc.assetManager.loadRemote(audio_url, function (err, audioClip) { + var audioId = cc.audioEngine.play(audioClip, false, 0.8); + + if (cb) { + cc.audioEngine.setFinishCallback(audioId, function () { + cb(); + }); + } + }); + } + } +} + +function btnClickAnima(btn, time, rate) { + if (time === void 0) { + time = 0.15; + } + + if (rate === void 0) { + rate = 1.05; + } + + btn.tmpScale = btn.scale; + btn.on(cc.Node.EventType.TOUCH_START, function () { + cc.tween(btn).to(time / 2, { + scale: btn.scale * rate + }).start(); + }); + btn.on(cc.Node.EventType.TOUCH_CANCEL, function () { + cc.tween(btn).to(time / 2, { + scale: btn.tmpScale + }).start(); + }); + btn.on(cc.Node.EventType.TOUCH_END, function () { + cc.tween(btn).to(time / 2, { + scale: btn.tmpScale + }).start(); + }); +} + +function getSpriteFrimeByUrl(url, cb) { + cc.loader.load({ + url: url + }, function (err, img) { + var spriteFrame = new cc.SpriteFrame(img); + + if (cb) { + cb(spriteFrame); + } + }); +} + +function getSprNode(resName) { + var sf = cc.find('Canvas/res/img/' + resName).getComponent(cc.Sprite).spriteFrame; + var node = new cc.Node(); + node.addComponent(cc.Sprite).spriteFrame = sf; + return node; +} + +function getSprNodeByUrl(url, cb) { + var node = new cc.Node(); + var spr = node.addComponent(cc.Sprite); + getSpriteFrimeByUrl(url, function (sf) { + spr.spriteFrame = sf; + + if (cb) { + cb(spr); + } + }); +} + +function playAudio(audioClip, cb) { + if (cb === void 0) { + cb = null; + } + + if (audioClip) { + var audioId = cc.audioEngine.playEffect(audioClip, false, 0.8); + + if (cb) { + cc.audioEngine.setFinishCallback(audioId, function () { + cb(); + }); + } + } +} + +function asyncDelay(_x) { + return _asyncDelay.apply(this, arguments); +} + +function _asyncDelay() { + _asyncDelay = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(time) { + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + return _context.abrupt("return", new Promise(function (resolve, reject) { + try { + setTimeout(function () { + resolve(); + }, time * 1000); + } catch (e) { + reject(e); + } + })); + + case 1: + case "end": + return _context.stop(); + } + } + }, _callee); + })); + return _asyncDelay.apply(this, arguments); +} + +var FireworkSettings = /*#__PURE__*/function () { + // 父节点 + // ç«èŠ±èŠ‚ç‚¹çš„array + // å‘射点 + // å‘å°„æ–¹å‘ + // 扩散范围 + // å‘å°„æ•°é‡ + // 缩放范围 + function FireworkSettings(baseNode, nodeList, pos, side, range, number, scalseRange) { + if (pos === void 0) { + pos = cc.v2(0, 0); + } + + if (side === void 0) { + side = cc.v2(0, 100); + } + + if (range === void 0) { + range = 50; + } + + if (number === void 0) { + number = 100; + } + + if (scalseRange === void 0) { + scalseRange = 0; + } + + this.baseNode = void 0; + this.nodeList = void 0; + this.pos = void 0; + this.side = void 0; + this.range = void 0; + this.number = void 0; + this.scalseRange = void 0; + this.baseNode = baseNode; + this.nodeList = nodeList; + this.pos = pos; + this.side = side; + this.range = range; + this.number = number; + this.scalseRange = scalseRange; + } + + FireworkSettings.copy = function copy(firework) { + return new FireworkSettings(firework.baseNode, firework.nodeList, firework.pos, firework.side, firework.range, firework.number); + }; + + return FireworkSettings; +}(); + +exports.FireworkSettings = FireworkSettings; + +function showFireworks(_x2) { + return _showFireworks.apply(this, arguments); +} + +function _showFireworks() { + _showFireworks = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3(fireworkSettings) { + var baseNode, nodeList, pos, side, range, number, scalseRange; + return regeneratorRuntime.wrap(function _callee3$(_context3) { + while (1) { + switch (_context3.prev = _context3.next) { + case 0: + baseNode = fireworkSettings.baseNode, nodeList = fireworkSettings.nodeList, pos = fireworkSettings.pos, side = fireworkSettings.side, range = fireworkSettings.range, number = fireworkSettings.number, scalseRange = fireworkSettings.scalseRange; + new Array(number).fill(' ').forEach( /*#__PURE__*/function () { + var _ref3 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(_, i) { + var rabbonNode, node, rate, angle; + return regeneratorRuntime.wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + rabbonNode = new cc.Node(); + rabbonNode.parent = baseNode; + rabbonNode.x = pos.x; + rabbonNode.y = pos.y; + rabbonNode.angle = 60 * Math.random() - 30; + node = cc.instantiate(nodeList[RandomInt(nodeList.length)]); + node.parent = rabbonNode; + node.active = true; + node.x = 0; + node.y = 0; + node.angle = 0; + node.scale = (Math.random() - 0.5) * scalseRange + 1; + rate = Math.random(); + angle = Math.PI * (Math.random() * 2 - 1); + _context2.next = 16; + return asyncTweenBy(rabbonNode, 0.3, { + x: side.x * rate + Math.cos(angle) * range * rate, + y: side.y * rate + Math.sin(angle) * range * rate + }, { + easing: 'quadIn' + }); + + case 16: + cc.tween(rabbonNode).by(8, { + y: -2000 + }).start(); + cc.tween(rabbonNode).to(5, { + scale: (Math.random() - 0.5) * scalseRange + 1 + }).start(); + rabbonFall(rabbonNode); + _context2.next = 21; + return asyncDelay(Math.random()); + + case 21: + cc.tween(node).by(0.15, { + x: -10, + angle: -10 + }).by(0.3, { + x: 20, + angle: 20 + }).by(0.15, { + x: -10, + angle: -10 + }).union().repeatForever().start(); + cc.tween(rabbonNode).delay(5).to(0.3, { + opacity: 0 + }).call(function () { + node.stopAllActions(); + node.active = false; + node.parent = null; + node = null; + }).start(); + + case 23: + case "end": + return _context2.stop(); + } + } + }, _callee2); + })); + + return function (_x12, _x13) { + return _ref3.apply(this, arguments); + }; + }()); + + case 2: + case "end": + return _context3.stop(); + } + } + }, _callee3); + })); + return _showFireworks.apply(this, arguments); +} + +function rabbonFall(_x3) { + return _rabbonFall.apply(this, arguments); +} + +function _rabbonFall() { + _rabbonFall = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4(node) { + var time, offsetX; + return regeneratorRuntime.wrap(function _callee4$(_context4) { + while (1) { + switch (_context4.prev = _context4.next) { + case 0: + time = 1 + Math.random(); + offsetX = RandomInt(-200, 200) * time; + _context4.next = 4; + return asyncTweenBy(node, time, { + x: offsetX, + angle: offsetX * 60 / 200 + }); + + case 4: + rabbonFall(node); + + case 5: + case "end": + return _context4.stop(); + } + } + }, _callee4); + })); + return _rabbonFall.apply(this, arguments); +} + +function asyncTweenTo(_x4, _x5, _x6, _x7) { + return _asyncTweenTo.apply(this, arguments); +} + +function _asyncTweenTo() { + _asyncTweenTo = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee5(node, duration, obj, ease) { + return regeneratorRuntime.wrap(function _callee5$(_context5) { + while (1) { + switch (_context5.prev = _context5.next) { + case 0: + if (ease === void 0) { + ease = undefined; + } + + return _context5.abrupt("return", new Promise(function (resolve, reject) { + try { + cc.tween(node).to(duration, obj, ease).call(function () { + resolve(); + }).start(); + } catch (e) { + reject(e); + } + })); + + case 2: + case "end": + return _context5.stop(); + } + } + }, _callee5); + })); + return _asyncTweenTo.apply(this, arguments); +} + +function asyncTweenBy(_x8, _x9, _x10, _x11) { + return _asyncTweenBy.apply(this, arguments); +} + +function _asyncTweenBy() { + _asyncTweenBy = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee6(node, duration, obj, ease) { + return regeneratorRuntime.wrap(function _callee6$(_context6) { + while (1) { + switch (_context6.prev = _context6.next) { + case 0: + if (ease === void 0) { + ease = undefined; + } + + return _context6.abrupt("return", new Promise(function (resolve, reject) { + try { + cc.tween(node).by(duration, obj, ease).call(function () { + resolve(); + }).start(); + } catch (e) { + reject(e); + } + })); + + case 2: + case "end": + return _context6.stop(); + } + } + }, _callee6); + })); + return _asyncTweenBy.apply(this, arguments); +} + +function showTrebleFirework(baseNode, rabbonList) { + var middle = new FireworkSettings(baseNode, rabbonList); + middle.pos = cc.v2(0, -400); + middle.side = cc.v2(0, 1000); + middle.range = 200; + middle.number = 100; + middle.scalseRange = 0.4; + var left = FireworkSettings.copy(middle); + left.pos = cc.v2(-600, -400); + left.side = cc.v2(200, 1000); + var right = FireworkSettings.copy(middle); + right.pos = cc.v2(600, -400); + right.side = cc.v2(-200, 1000); + showFireworks(middle); + showFireworks(left); + showFireworks(right); +} + +function onHomeworkFinish() { + var middleLayer = cc.find('middleLayer'); + + if (middleLayer) { + var middleLayerComponent = middleLayer.getComponent('middleLayer'); + + if (middleLayerComponent.role == 'student') { + middleLayerComponent.onHomeworkFinish(function () {}); + } + } else { + console.log('onHomeworkFinish'); + } +} + +function loadDragonBones(dragonDisplay, _ref) { + var tex = _ref.tex, + atlas = _ref.atlas, + ske = _ref.ske; + return new Promise(function (resolve, reject) { + cc.loader.load({ + url: tex, + type: 'png' + }, function (error, texture) { + if (error) { + reject(); + return; + } + + cc.loader.load({ + url: atlas, + type: 'txt' + }, function (error, atlasJson) { + if (error) { + reject(); + return; + } + + cc.loader.load({ + url: ske, + type: 'txt' + }, function (error, dragonBonesJson) { + if (error) { + reject(); + return; + } + + var atlasObj = new dragonBones.DragonBonesAtlasAsset(); + atlasObj.uuid = atlas; + atlasObj.atlasJson = atlasJson; + atlasObj.texture = texture; + var asset = new dragonBones.DragonBonesAsset(); + asset.uuid = ske; + asset.dragonBonesJson = dragonBonesJson; + var armatureName = asset._dragonBonesJsonData.armature[0].name || 'default'; + dragonDisplay.armatureName = armatureName; + dragonDisplay.dragonAtlasAsset = atlasObj; + dragonDisplay.dragonAsset = asset; + resolve(asset._dragonBonesJsonData.armature[0].aabb); + }); + }); + }); + }); +} + +function loadSpine(skeleton, picName, _ref2) { + var tex = _ref2.tex, + atlas = _ref2.atlas, + ske = _ref2.ske; + return new Promise(function (resolve, reject) { + // cc.loader.load({ url: tex, type: 'png' }, (error, texture) => { + cc.assetManager.loadRemote(tex, function (error, texture) { + if (error) { + reject(); + return; + } // cc.loader.load({ url: atlas, type: 'txt' }, (error, atlasJson) => { + + + cc.assetManager.loadAny({ + url: atlas + }, function (error, atlasJson) { + if (error) { + reject(); + return; + } // cc.loader.load({ url: ske, type: 'txt' }, (error, dragonBonesJson) => { + + + cc.assetManager.loadAny({ + url: ske + }, function (error, dragonBonesJson) { + if (error) { + reject(); + return; + } + + var asset = new sp.SkeletonData(); + asset._uuid = ske; + asset.skeletonJson = JSON.stringify(dragonBonesJson); + asset.atlasText = atlasJson; + asset.textures = [texture]; + asset.textureNames = [picName]; + console.log('picName: ', picName); + skeleton.skeletonData = asset; + var jsonObj = dragonBonesJson; //JSON.parse( assets[1]); + + var animationNameObj = jsonObj.animations; + var animationNames = []; + + for (var name in animationNameObj) { + console.log('name~~: ', name); + animationNames.push(name); + } + + console.log("skeleton.animation: ", skeleton.animation); + skeleton.animationNames = animationNames; + skeleton.loop = false; + console.log("jsonObj['skeleton'] : ", jsonObj['skeleton']); + resolve(jsonObj['skeleton']); // const atlasObj = new dragonBones.DragonBonesAtlasAsset() + // atlasObj.uuid = atlas + // atlasObj.atlasJson = atlasJson + // atlasObj.texture = texture + // const asset = new dragonBones.DragonBonesAsset() + // asset.uuid = ske + // asset.dragonBonesJson = dragonBonesJson; + // const armatureName = asset._dragonBonesJsonData.armature[0].name || 'default'; + // dragonDisplay.armatureName = armatureName; + // dragonDisplay.dragonAtlasAsset = atlasObj + // dragonDisplay.dragonAsset = asset; + // resolve(asset._dragonBonesJsonData.armature[0].aabb); + }); + }); + }); + }); +} + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0cy9PUDE1L3NjcmlwdC91dGlsLmpzIl0sIm5hbWVzIjpbImdldFBvc0J5QW5nbGUiLCJhbmdsZSIsImxlbiIsInJhZGlhbiIsIk1hdGgiLCJQSSIsIngiLCJzaW4iLCJ5IiwiY29zIiwiZ2V0QW5nbGVCeVBvcyIsInB4IiwicHkiLCJteCIsIm15IiwiYWJzIiwieiIsInNxcnQiLCJwb3ciLCJyYWRpbmEiLCJhY29zIiwiZmxvb3IiLCJleGNoYW5nZU5vZGVQb3MiLCJiYXNlTm9kZSIsInRhcmdldE5vZGUiLCJjb252ZXJ0VG9Ob2RlU3BhY2VBUiIsIl9wYXJlbnQiLCJjb252ZXJ0VG9Xb3JsZFNwYWNlQVIiLCJjYyIsInYyIiwiUmFuZG9tSW50IiwiYSIsImIiLCJtYXgiLCJtaW4iLCJyYW5kb20iLCJyYW5kb21Tb3J0QnlBcnIiLCJhcnIiLCJuZXdBcnIiLCJ0bXBBcnIiLCJjb25jYXQiLCJsZW5ndGgiLCJyYW5kb21JbmRleCIsInB1c2giLCJzcGxpY2UiLCJzZXRTcHJOb2RlTWF4TGVuIiwic3ByTm9kZSIsIm1heFciLCJtYXhIIiwic3giLCJ3aWR0aCIsInN5IiwiaGVpZ2h0IiwicyIsInNjYWxlIiwicm91bmQiLCJsb2NhbFBvc1RvbG9jYWxQb3MiLCJ3b3JsZFBvcyIsInBhcmVudCIsImxvY2FsUG9zIiwid29ybGRQb3NUb0xvY2FsUG9zIiwiZ2V0U2NhbGVSYXRlQnkyTm9kZSIsIm1heEZsYWciLCJ3b3JsZFJlY3QxIiwiZ2V0Qm91bmRpbmdCb3hUb1dvcmxkIiwid29ybGRSZWN0MiIsImdldERpc3RhbmNlIiwic3RhcnQiLCJlbmQiLCJwb3MiLCJkaXMiLCJwbGF5QXVkaW9CeVVybCIsImF1ZGlvX3VybCIsImNiIiwiQXVkaW9DbGlwIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiYXVkaW9JZCIsImF1ZGlvRW5naW5lIiwicGxheSIsInNldEZpbmlzaENhbGxiYWNrIiwiYXNzZXRNYW5hZ2VyIiwibG9hZFJlbW90ZSIsImVyciIsImF1ZGlvQ2xpcCIsImJ0bkNsaWNrQW5pbWEiLCJidG4iLCJ0aW1lIiwicmF0ZSIsInRtcFNjYWxlIiwib24iLCJOb2RlIiwiRXZlbnRUeXBlIiwiVE9VQ0hfU1RBUlQiLCJ0d2VlbiIsInRvIiwiVE9VQ0hfQ0FOQ0VMIiwiVE9VQ0hfRU5EIiwiZ2V0U3ByaXRlRnJpbWVCeVVybCIsInVybCIsImxvYWRlciIsImxvYWQiLCJpbWciLCJzcHJpdGVGcmFtZSIsIlNwcml0ZUZyYW1lIiwiZ2V0U3ByTm9kZSIsInJlc05hbWUiLCJzZiIsImZpbmQiLCJnZXRDb21wb25lbnQiLCJTcHJpdGUiLCJub2RlIiwiYWRkQ29tcG9uZW50IiwiZ2V0U3ByTm9kZUJ5VXJsIiwic3ByIiwicGxheUF1ZGlvIiwicGxheUVmZmVjdCIsImFzeW5jRGVsYXkiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsInNldFRpbWVvdXQiLCJlIiwiRmlyZXdvcmtTZXR0aW5ncyIsIm5vZGVMaXN0Iiwic2lkZSIsInJhbmdlIiwibnVtYmVyIiwic2NhbHNlUmFuZ2UiLCJjb3B5IiwiZmlyZXdvcmsiLCJzaG93RmlyZXdvcmtzIiwiZmlyZXdvcmtTZXR0aW5ncyIsIkFycmF5IiwiZmlsbCIsImZvckVhY2giLCJfIiwiaSIsInJhYmJvbk5vZGUiLCJpbnN0YW50aWF0ZSIsImFjdGl2ZSIsImFzeW5jVHdlZW5CeSIsImVhc2luZyIsImJ5IiwicmFiYm9uRmFsbCIsInVuaW9uIiwicmVwZWF0Rm9yZXZlciIsImRlbGF5Iiwib3BhY2l0eSIsImNhbGwiLCJzdG9wQWxsQWN0aW9ucyIsIm9mZnNldFgiLCJhc3luY1R3ZWVuVG8iLCJkdXJhdGlvbiIsIm9iaiIsImVhc2UiLCJ1bmRlZmluZWQiLCJzaG93VHJlYmxlRmlyZXdvcmsiLCJyYWJib25MaXN0IiwibWlkZGxlIiwibGVmdCIsInJpZ2h0Iiwib25Ib21ld29ya0ZpbmlzaCIsIm1pZGRsZUxheWVyIiwibWlkZGxlTGF5ZXJDb21wb25lbnQiLCJyb2xlIiwiY29uc29sZSIsImxvZyIsImxvYWREcmFnb25Cb25lcyIsImRyYWdvbkRpc3BsYXkiLCJ0ZXgiLCJhdGxhcyIsInNrZSIsInR5cGUiLCJlcnJvciIsInRleHR1cmUiLCJhdGxhc0pzb24iLCJkcmFnb25Cb25lc0pzb24iLCJhdGxhc09iaiIsImRyYWdvbkJvbmVzIiwiRHJhZ29uQm9uZXNBdGxhc0Fzc2V0IiwidXVpZCIsImFzc2V0IiwiRHJhZ29uQm9uZXNBc3NldCIsImFybWF0dXJlTmFtZSIsIl9kcmFnb25Cb25lc0pzb25EYXRhIiwiYXJtYXR1cmUiLCJkcmFnb25BdGxhc0Fzc2V0IiwiZHJhZ29uQXNzZXQiLCJhYWJiIiwibG9hZFNwaW5lIiwic2tlbGV0b24iLCJwaWNOYW1lIiwibG9hZEFueSIsInNwIiwiU2tlbGV0b25EYXRhIiwiX3V1aWQiLCJza2VsZXRvbkpzb24iLCJKU09OIiwic3RyaW5naWZ5IiwiYXRsYXNUZXh0IiwidGV4dHVyZXMiLCJ0ZXh0dXJlTmFtZXMiLCJza2VsZXRvbkRhdGEiLCJqc29uT2JqIiwiYW5pbWF0aW9uTmFtZU9iaiIsImFuaW1hdGlvbnMiLCJhbmltYXRpb25OYW1lcyIsImFuaW1hdGlvbiIsImxvb3AiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFPLFNBQVNBLGFBQVQsQ0FBdUJDLEtBQXZCLEVBQThCQyxHQUE5QixFQUFtQztBQUV4QyxNQUFNQyxNQUFNLEdBQUdGLEtBQUssR0FBR0csSUFBSSxDQUFDQyxFQUFiLEdBQWtCLEdBQWpDO0FBQ0EsTUFBTUMsQ0FBQyxHQUFHRixJQUFJLENBQUNHLEdBQUwsQ0FBU0osTUFBVCxJQUFtQkQsR0FBN0I7QUFDQSxNQUFNTSxDQUFDLEdBQUdKLElBQUksQ0FBQ0ssR0FBTCxDQUFTTixNQUFULElBQW1CRCxHQUE3QjtBQUVBLFNBQU87QUFBRUksSUFBQUEsQ0FBQyxFQUFEQSxDQUFGO0FBQUtFLElBQUFBLENBQUMsRUFBREE7QUFBTCxHQUFQO0FBRUQ7O0FBRU0sU0FBU0UsYUFBVCxD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VixPQUFELENBQXJCO0FBRUExQixVQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBWSxXQUFaLEVBQXlCeUIsT0FBekI7QUFFSEQsVUFBQUEsUUFBUSxDQUFDWSxZQUFULEdBQXdCckIsS0FBeEI7QUFHRyxjQUFNc0IsT0FBTyxHQUFHM0IsZUFBaEIsQ0FuQmdFLENBbUJoQzs7QUFDaEMsY0FBTTRCLGdCQUFnQixHQUFHRCxPQUFPLENBQUNFLFVBQWpDO0FBQ0EsY0FBSUMsY0FBYyxHQUFHLEVBQXJCOztBQUNBLGVBQUssSUFBSW5JLElBQVQsSUFBaUJpSSxnQkFBakIsRUFBbUM7QUFDakN2QyxZQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBWSxXQUFaLEVBQXlCM0YsSUFBekI7QUFDQW1JLFlBQUFBLGNBQWMsQ0FBQ3BLLElBQWYsQ0FBb0JpQyxJQUFwQjtBQUNEOztBQUNKMEYsVUFBQUEsT0FBTyxDQUFDQyxHQUFSLENBQVksc0JBQVosRUFBb0N3QixRQUFRLENBQUNpQixTQUE3QztBQUNHakIsVUFBQUEsUUFBUSxDQUFDZ0IsY0FBVCxHQUEwQkEsY0FBMUI7QUFDSGhCLFVBQUFBLFFBQVEsQ0FBQ2tCLElBQVQsR0FBZ0IsS0FBaEI7QUFFRzNDLFVBQUFBLE9BQU8sQ0FBQ0MsR0FBUixDQUFZLHdCQUFaLEVBQXNDcUMsT0FBTyxDQUFDLFVBQUQsQ0FBN0M7QUFFQXJGLFVBQUFBLE9BQU8sQ0FBQ3FGLE9BQU8sQ0FBQyxVQUFELENBQVIsQ0FBUCxDQWhDZ0UsQ0FtQ2hFO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNELFNBbEREO0FBbURILE9BekREO0FBMERELEtBaEVEO0FBaUVELEdBbkVNLENBQVA7QUFxRUQiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBnZXRQb3NCeUFuZ2xlKGFuZ2xlLCBsZW4pIHtcblxuICBjb25zdCByYWRpYW4gPSBhbmdsZSAqIE1hdGguUEkgLyAxODA7XG4gIGNvbnN0IHggPSBNYXRoLnNpbihyYWRpYW4pICogbGVuO1xuICBjb25zdCB5ID0gTWF0aC5jb3MocmFkaWFuKSAqIGxlbjtcblxuICByZXR1cm4geyB4LCB5IH07XG5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFuZ2xlQnlQb3MocHgsIHB5LCBteCwgbXkpIHtcblxuICBjb25zdCB4ID0gTWF0aC5hYnMocHggLSBteCk7XG4gIGNvbnN0IHkgPSBNYXRoLmFicyhweSAtIG15KTtcblxuICBjb25zdCB6ID0gTWF0aC5zcXJ0KE1hdGgucG93KHgsIDIpICsgTWF0aC5wb3coeSwgMikpO1xuICBjb25zdCBjb3MgPSB5IC8gejtcbiAgY29uc3QgcmFkaW5hID0gTWF0aC5hY29zKGNvcyk7IC8vIOeUqOWPjeS4ieinkuWHveaVsOaxguW8p+W6plxuICBsZXQgYW5nbGUgPSBNYXRoLmZsb29yKDE4MCAvIChNYXRoLlBJIC8gcmFkaW5hKSAqIDEwMCkgLyAxMDA7IC8vIOWwhuW8p+W6pui9rOaNouaIkOinkuW6plxuXG4gIGlmIChteCA+IHB4ICYmIG15ID4gcHkpIHsvLyDpvKDmoIflnKjnrKzlm5vosaHpmZBcbiAgICBhbmdsZSA9IDE4MCAtIGFuZ2xlO1xuICB9XG4gIGlmIChteCA9PT0gcHggJiYgbXkgPiBweSkgey8vIOm8oOagh+WcqHnovbTotJ/mlrnlkJHkuIpcbiAgICBhbmdsZSA9IDE4MDtcbiAgfVxuICBpZiAobXggPiBweCAmJiBteSA9PT0gcHkpIHsvLyDpvKDmoIflnKh46L205q2j5pa55ZCR5LiKXG4gICAgYW5nbGUgPSA5MDtcbiAgfVxuICBpZiAobXggPCBweCAmJiBteSA+IHB5KSB7Ly8g6byg5qCH5Zyo56ys5LiJ6LGh6ZmQXG4gICAgYW5nbGUgPSAxODAgKyBhbmdsZTtcbiAgfVxuICBpZiAobXggPCBweCAmJiBteSA9PT0gcHkpIHsvLyDpvKDmoIflnKh46L206LSf5pa55ZCRXG4gICAgYW5nbGUgPSAyNzA7XG4gIH1cbiAgaWYgKG14IDwgcHggJiYgbXkgPCBweSkgey8vIOm8oOagh+WcqOesrOS6jOixoemZkFxuICAgIGFuZ2xlID0gMzYwIC0gYW5nbGU7XG4gIH1cblxuICAvLyBjb25zb2xlLmxvZygnYW5nbGU6ICcsIGFuZ2xlKTtcbiAgcmV0dXJuIGFuZ2xlO1xuXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleGNoYW5nZU5vZGVQb3MoYmFzZU5vZGUsIHRhcmdldE5vZGUpIHtcbiAgcmV0dXJuIGJhc2VOb2RlLmNvbnZlcnRUb05vZGVTcGFjZUFSKHRhcmdldE5vZGUuX3BhcmVudC5jb252ZXJ0VG9Xb3JsZFNwYWNlQVIoY2MudjIodGFyZ2V0Tm9kZS54LCB0YXJnZXROb2RlLnkpKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBSYW5kb21JbnQoYSwgYiA9IDApIHtcbiAgbGV0IG1heCA9IE1hdGgubWF4KGEsIGIpO1xuICBsZXQgbWluID0gTWF0aC5taW4oYSwgYik7XG4gIHJldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAobWF4IC0gbWluKSArIG1pbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByYW5kb21Tb3J0QnlBcnIoYXJyKSB7XG4gIGNvbnN0IG5ld0FyciA9IFtdO1xuICBjb25zdCB0bXBBcnIgPSBhcnIuY29uY2F0KCk7XG4gIHdoaWxlICh0bXBBcnIubGVuZ3RoID4gMCkge1xuICAgIGNvbnN0IHJhbmRvbUluZGV4ID0gTWF0aC5mbG9vcih0bXBBcnIubGVuZ3RoICogTWF0aC5yYW5kb20oKSk7XG4gICAgbmV3QXJyLnB1c2godG1wQXJyW3JhbmRvbUluZGV4XSk7XG4gICAgdG1wQXJyLnNwbGljZShyYW5kb21JbmRleCwgMSk7XG4gIH1cbiAgcmV0dXJuIG5ld0Fycjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldFNwck5vZGVNYXhMZW4oc3ByTm9kZSwgbWF4VywgbWF4SCkge1xuICBjb25zdCBzeCA9IG1heFcgLyBzcHJOb2RlLndpZHRoO1xuICBjb25zdCBzeSA9IG1heEggLyBzcHJOb2RlLmhlaWdodDtcbiAgY29uc3QgcyA9IE1hdGgubWluKHN4LCBzeSk7XG4gIHNwck5vZGUuc2NhbGUgPSBNYXRoLnJvdW5kKHMgKiAxMDAwKSAvIDEwMDA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2NhbFBvc1RvbG9jYWxQb3MoYmFzZU5vZGUsIHRhcmdldE5vZGUpIHtcblx0Y29uc3Qgd29ybGRQb3MgPSB0YXJnZXROb2RlLnBhcmVudC5jb252ZXJ0VG9Xb3JsZFNwYWNlQVIoY2MudjIodGFyZ2V0Tm9kZS54LCB0YXJnZXROb2RlLnkpKTtcblx0Y29uc3QgbG9jYWxQb3MgPSBiYXNlTm9kZS5wYXJlbnQuY29udmVydFRvTm9kZVNwYWNlQVIoY2MudjIod29ybGRQb3MueCwgd29ybGRQb3MueSkpO1xuXHRyZXR1cm4gbG9jYWxQb3M7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3b3JsZFBvc1RvTG9jYWxQb3Mod29ybGRQb3MsIGJhc2VOb2RlKSB7XG5cdGNvbnN0IGxvY2FsUG9zID0gYmFzZU5vZGUucGFyZW50LmNvbnZlcnRUb05vZGVTcGFjZUFSKGNjLnYyKHdvcmxkUG9zLngsIHdvcmxkUG9zLnkpKTtcblx0cmV0dXJuIGxvY2FsUG9zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2NhbGVSYXRlQnkyTm9kZShiYXNlTm9kZSwgdGFyZ2V0Tm9kZSwgbWF4RmxhZyA9IHRydWUpIHtcblx0Y29uc3Qgd29ybGRSZWN0MSA9IHRhcmdldE5vZGUuZ2V0Qm91bmRpbmdCb3hUb1dvcmxkKCk7XG5cdGNvbnN0IHdvcmxkUmVjdDIgPSBiYXNlTm9kZS5nZXRCb3VuZGluZ0JveFRvV29ybGQoKTtcblxuXHRjb25zdCBzeCA9IHdvcmxkUmVjdDEud2lkdGggLyB3b3JsZFJlY3QyLndpZHRoO1xuXHRjb25zdCBzeSA9IHdvcmxkUmVjdDEuaGVpZ2h0IC8gd29ybGRSZWN0Mi5oZWlnaHQ7XG5cdGlmIChtYXhGbGFnKSB7XG5cdFx0cmV0dXJuIE1hdGgubWF4KHN4LCBzeSk7XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIE1hdGgubWluKHN4LCBzeSk7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERpc3RhbmNlIChzdGFydCwgZW5kKXtcbiAgICB2YXIgcG9zID0gY2MudjIoc3RhcnQueCAtIGVuZC54LCBzdGFydC55IC0gZW5kLnkpO1xuICAgIHZhciBkaXMgPSBNYXRoLnNxcnQocG9zLngqcG9zLnggKyBwb3MueSpwb3MueSk7XG4gICAgcmV0dXJuIGRpcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBsYXlBdWRpb0J5VXJsKGF1ZGlvX3VybCwgY2I9bnVsbCkge1xuXHRpZiAoYXVkaW9fdXJsKSB7XG4gICAgaWYgKChhdWRpb191cmwgaW5zdGFuY2VvZiBjYy5BdWRpb0NsaXApICYmYXVkaW9fdXJsLmNvbnN0cnVjdG9yLm5hbWUgPT0gJ2NjX0F1ZGlvQ2xpcCcpIHtcbiAgICAgIGNvbnN0IGF1ZGlvSWQgPSBjYy5hdWRpb0VuZ2luZS5wbGF5KGF1ZGlvX3VybCwgZmFsc2UsIDAuOCk7XG4gICAgICBpZiAoY2IpIHtcbiAgICAgICAgY2MuYXVkaW9FbmdpbmUuc2V0RmluaXNoQ2FsbGJhY2soYXVkaW9JZCwgKCkgPT4ge1xuICAgICAgICAgIGNiKCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjYy5hc3NldE1hbmFnZXIubG9hZFJlbW90ZShhdWRpb191cmwsIChlcnIsIGF1ZGlvQ2xpcCkgPT4ge1xuICAgICAgICBjb25zdCBhdWRpb0lkID0gY2MuYXVkaW9FbmdpbmUucGxheShhdWRpb0NsaXAsIGZhbHNlLCAwLjgpO1xuICAgICAgICBpZiAoY2IpIHtcbiAgICAgICAgICBjYy5hdWRpb0VuZ2luZS5zZXRGaW5pc2hDYWxsYmFjayhhdWRpb0lkLCAoKSA9PiB7XG4gICAgICAgICAgICBjYigpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTsgICAgfVxuXHRcdFxuXHR9XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGJ0bkNsaWNrQW5pbWEoYnRuLCB0aW1lPTAuMTUsIHJhdGU9MS4wNSkge1xuICBidG4udG1wU2NhbGUgPSBidG4uc2NhbGU7XG4gIGJ0bi5vbihjYy5Ob2RlLkV2ZW50VHlwZS5UT1VDSF9TVEFSVCwgKCkgPT4ge1xuICAgIGNjLnR3ZWVuKGJ0bilcbiAgICAgIC50byh0aW1lIC8gMiwge3NjYWxlOiBidG4uc2NhbGUgKiByYXRlfSlcbiAgICAgIC5zdGFydCgpXG4gIH0pXG4gIGJ0bi5vbihjYy5Ob2RlLkV2ZW50VHlwZS5UT1VDSF9DQU5DRUwsICgpID0+IHtcbiAgICBjYy50d2VlbihidG4pXG4gICAgICAudG8odGltZSAvIDIsIHtzY2FsZTogYnRuLnRtcFNjYWxlfSlcbiAgICAgIC5zdGFydCgpXG4gIH0pXG4gIGJ0bi5vbihjYy5Ob2RlLkV2ZW50VHlwZS5UT1VDSF9FTkQsICgpID0+IHtcbiAgICBjYy50d2VlbihidG4pXG4gICAgICAudG8odGltZSAvIDIsIHtzY2FsZTogYnRuLnRtcFNjYWxlfSlcbiAgICAgIC5zdGFydCgpXG4gIH0pXG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNwcml0ZUZyaW1lQnlVcmwodXJsLCBjYikge1xuICBjYy5sb2FkZXIubG9hZCh7IHVybCB9LCAoZXJyLCBpbWcpID0+IHtcbiAgICBjb25zdCBzcHJpdGVGcmFtZSA9IG5ldyBjYy5TcHJpdGVGcmFtZShpbWcpXG4gICAgaWYgKGNiKSB7XG4gICAgICBjYihzcHJpdGVGcmFtZSk7XG4gICAgfVxuICB9KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3ByTm9kZShyZXNOYW1lKSB7XG4gIGNvbnN0IHNmID0gY2MuZmluZCgnQ2FudmFzL3Jlcy9pbWcvJyArIHJlc05hbWUpLmdldENvbXBvbmVudChjYy5TcHJpdGUpLnNwcml0ZUZyYW1lO1xuICBjb25zdCBub2RlID0gbmV3IGNjLk5vZGUoKTtcbiAgbm9kZS5hZGRDb21wb25lbnQoY2MuU3ByaXRlKS5zcHJpdGVGcmFtZSA9IHNmO1xuICByZXR1cm4gbm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNwck5vZGVCeVVybCh1cmwsIGNiKSB7XG4gIGNvbnN0IG5vZGUgPSBuZXcgY2MuTm9kZSgpO1xuICBjb25zdCBzcHIgPSBub2RlLmFkZENvbXBvbmVudChjYy5TcHJpdGUpO1xuICBnZXRTcHJpdGVGcmltZUJ5VXJsKHVybCwgKHNmKSA9PiB7XG4gICAgc3ByLnNwcml0ZUZyYW1lID0gc2Y7XG4gICAgaWYgKGNiKSB7XG4gICAgICBjYihzcHIpO1xuICAgIH1cbiAgfSlcbn1cblxuXG5cbmV4cG9ydCBmdW5jdGlvbiBwbGF5QXVkaW8oYXVkaW9DbGlwLCBjYiA9IG51bGwpIHtcbiAgaWYgKGF1ZGlvQ2xpcCkge1xuICAgIGNvbnN0IGF1ZGlvSWQgPSBjYy5hdWRpb0VuZ2luZS5wbGF5RWZmZWN0KGF1ZGlvQ2xpcCwgZmFsc2UsIDAuOCk7XG4gICAgaWYgKGNiKSB7XG4gICAgICBjYy5hdWRpb0VuZ2luZS5zZXRGaW5pc2hDYWxsYmFjayhhdWRpb0lkLCAoKSA9PiB7XG4gICAgICAgIGNiKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFzeW5jRGVsYXkodGltZSkge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfSwgdGltZSAqIDEwMDApO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJlamVjdChlKTtcbiAgICB9XG4gIH0pXG59XG5cbmV4cG9ydCBjbGFzcyBGaXJld29ya1NldHRpbmdzIHtcbiAgYmFzZU5vZGU7IC8vIOeItuiKgueCuVxuICBub2RlTGlzdDsgLy8g54Gr6Iqx6IqC54K555qEYXJyYXlcbiAgcG9zOyAvLyDlj5HlsITngrlcbiAgc2lkZTsgLy8g5Y+R5bCE5pa55ZCRXG4gIHJhbmdlOyAvLyDmianmlaPojIPlm7RcbiAgbnVtYmVyOyAvLyDlj5HlsITmlbDph49cbiAgc2NhbHNlUmFuZ2U7IC8vIOe8qeaUvuiMg+WbtFxuICBjb25zdHJ1Y3RvcihiYXNlTm9kZSwgbm9kZUxpc3QsXG4gICAgcG9zID0gY2MudjIoMCwgMCksXG4gICAgc2lkZSA9IGNjLnYyKDAsIDEwMCksXG4gICAgcmFuZ2UgPSA1MCxcbiAgICBudW1iZXIgPSAxMDAsXG4gICAgc2NhbHNlUmFuZ2UgPSAwXG4gICkge1xuICAgIHRoaXMuYmFzZU5vZGUgPSBiYXNlTm9kZTtcbiAgICB0aGlzLm5vZGVMaXN0ID0gbm9kZUxpc3Q7XG4gICAgdGhpcy5wb3MgPSBwb3M7XG4gICAgdGhpcy5zaWRlID0gc2lkZTtcbiAgICB0aGlzLnJhbmdlID0gcmFuZ2U7XG4gICAgdGhpcy5udW1iZXIgPSBudW1iZXI7XG4gICAgdGhpcy5zY2Fsc2VSYW5nZSA9IHNjYWxzZVJhbmdlO1xuICB9XG5cbiAgc3RhdGljIGNvcHkoZmlyZXdvcmspIHtcbiAgICByZXR1cm4gbmV3IEZpcmV3b3JrU2V0dGluZ3MoXG4gICAgICBmaXJld29yay5iYXNlTm9kZSxcbiAgICAgIGZpcmV3b3JrLm5vZGVMaXN0LFxuICAgICAgZmlyZXdvcmsucG9zLFxuICAgICAgZmlyZXdvcmsuc2lkZSxcbiAgICAgIGZpcmV3b3JrLnJhbmdlLFxuICAgICAgZmlyZXdvcmsubnVtYmVyLFxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNob3dGaXJld29ya3MoZmlyZXdvcmtTZXR0aW5ncykge1xuICBjb25zdCB7IGJhc2VOb2RlLCBub2RlTGlzdCwgcG9zLCBzaWRlLCByYW5nZSwgbnVtYmVyLCBzY2Fsc2VSYW5nZSB9ID0gZmlyZXdvcmtTZXR0aW5ncztcbiAgbmV3IEFycmF5KG51bWJlcikuZmlsbCgnICcpLmZvckVhY2goYXN5bmMgKF8sIGkpID0+IHtcblxuICAgIGxldCByYWJib25Ob2RlID0gbmV3IGNjLk5vZGUoKTtcbiAgICByYWJib25Ob2RlLnBhcmVudCA9IGJhc2VOb2RlO1xuICAgIHJhYmJvbk5vZGUueCA9IHBvcy54O1xuICAgIHJhYmJvbk5vZGUueSA9IHBvcy55O1xuICAgIHJhYmJvbk5vZGUuYW5nbGUgPSA2MCAqIE1hdGgucmFuZG9tKCkgLSAzMDtcblxuICAgIGxldCBub2RlID0gY2MuaW5zdGFudGlhdGUobm9kZUxpc3RbUmFuZG9tSW50KG5vZGVMaXN0Lmxlbmd0aCldKTtcbiAgICBub2RlLnBhcmVudCA9IHJhYmJvbk5vZGU7XG4gICAgbm9kZS5hY3RpdmUgPSB0cnVlO1xuICAgIG5vZGUueCA9IDA7XG4gICAgbm9kZS55ID0gMDtcbiAgICBub2RlLmFuZ2xlID0gMDtcbiAgICBub2RlLnNjYWxlID0gKE1hdGgucmFuZG9tKCkgLSAwLjUpICogc2NhbHNlUmFuZ2UgKyAxO1xuXG4gICAgY29uc3QgcmF0ZSA9IE1hdGgucmFuZG9tKCk7XG4gICAgY29uc3QgYW5nbGUgPSBNYXRoLlBJICogKE1hdGgucmFuZG9tKCkgKiAyIC0gMSk7XG5cbiAgICBhd2FpdCBhc3luY1R3ZWVuQnkocmFiYm9uTm9kZSwgMC4zLCB7XG4gICAgICB4OiBzaWRlLnggKiByYXRlICsgTWF0aC5jb3MoYW5nbGUpICogcmFuZ2UgKiByYXRlLFxuICAgICAgeTogc2lkZS55ICogcmF0ZSArIE1hdGguc2luKGFuZ2xlKSAqIHJhbmdlICogcmF0ZVxuICAgIH0sIHtcbiAgICAgIGVhc2luZzogJ3F1YWRJbidcbiAgICB9KTtcblxuICAgIGNjLnR3ZWVuKHJhYmJvbk5vZGUpXG4gICAgICAuYnkoOCwgeyB5OiAtMjAwMCB9KVxuICAgICAgLnN0YXJ0KCk7XG5cbiAgICBjYy50d2VlbihyYWJib25Ob2RlKVxuICAgICAgLnRvKDUsIHsgc2NhbGU6IChNYXRoLnJhbmRvbSgpIC0gMC41KSAqIHNjYWxzZVJhbmdlICsgMSB9KVxuICAgICAgLnN0YXJ0KCk7XG5cbiAgICByYWJib25GYWxsKHJhYmJvbk5vZGUpO1xuXG4gICAgYXdhaXQgYXN5bmNEZWxheShNYXRoLnJhbmRvbSgpKTtcbiAgICBjYy50d2Vlbihub2RlKVxuICAgICAgLmJ5KDAuMTUsIHsgeDogLTEwLCBhbmdsZTogLTEwIH0pXG4gICAgICAuYnkoMC4zLCB7IHg6IDIwLCBhbmdsZTogMjAgfSlcbiAgICAgIC5ieSgwLjE1LCB7IHg6IC0xMCwgYW5nbGU6IC0xMCB9KVxuICAgICAgLnVuaW9uKClcbiAgICAgIC5yZXBlYXRGb3JldmVyKClcbiAgICAgIC5zdGFydCgpO1xuXG4gICAgY2MudHdlZW4ocmFiYm9uTm9kZSlcbiAgICAgIC5kZWxheSg1KVxuICAgICAgLnRvKDAuMywgeyBvcGFjaXR5OiAwIH0pXG4gICAgICAuY2FsbCgoKSA9PiB7XG4gICAgICAgIG5vZGUuc3RvcEFsbEFjdGlvbnMoKTtcbiAgICAgICAgbm9kZS5hY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgbm9kZS5wYXJlbnQgPSBudWxsO1xuICAgICAgICBub2RlID0gbnVsbDtcbiAgICAgIH0pXG4gICAgICAuc3RhcnQoKTtcbiAgfSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJhYmJvbkZhbGwobm9kZSkge1xuICBjb25zdCB0aW1lID0gMSArIE1hdGgucmFuZG9tKCk7XG4gIGNvbnN0IG9mZnNldFggPSBSYW5kb21JbnQoLTIwMCwgMjAwKSAqIHRpbWU7XG4gIGF3YWl0IGFzeW5jVHdlZW5CeShub2RlLCB0aW1lLCB7IHg6IG9mZnNldFgsIGFuZ2xlOiBvZmZzZXRYICogNjAgLyAyMDAgfSk7XG4gIHJhYmJvbkZhbGwobm9kZSk7XG59XG5cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFzeW5jVHdlZW5Ubyhub2RlLCBkdXJhdGlvbiwgb2JqLCBlYXNlID0gdW5kZWZpbmVkKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNjLnR3ZWVuKG5vZGUpXG4gICAgICAgIC50byhkdXJhdGlvbiwgb2JqLCBlYXNlKVxuICAgICAgICAuY2FsbCgoKSA9PiB7XG4gICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICB9KVxuICAgICAgICAuc3RhcnQoKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZWplY3QoZSk7XG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFzeW5jVHdlZW5CeShub2RlLCBkdXJhdGlvbiwgb2JqLCBlYXNlID0gdW5kZWZpbmVkKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNjLnR3ZWVuKG5vZGUpXG4gICAgICAgIC5ieShkdXJhdGlvbiwgb2JqLCBlYXNlKVxuICAgICAgICAuY2FsbCgoKSA9PiB7XG4gICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICB9KVxuICAgICAgICAuc3RhcnQoKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZWplY3QoZSk7XG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNob3dUcmVibGVGaXJld29yayhiYXNlTm9kZSwgcmFiYm9uTGlzdCkge1xuICBjb25zdCBtaWRkbGUgPSBuZXcgRmlyZXdvcmtTZXR0aW5ncyhiYXNlTm9kZSwgcmFiYm9uTGlzdCk7XG4gIG1pZGRsZS5wb3MgPSBjYy52MigwLCAtNDAwKTtcbiAgbWlkZGxlLnNpZGUgPSBjYy52MigwLCAxMDAwKTtcbiAgbWlkZGxlLnJhbmdlID0gMjAwO1xuICBtaWRkbGUubnVtYmVyID0gMTAwO1xuICBtaWRkbGUuc2NhbHNlUmFuZ2UgPSAwLjQ7XG5cbiAgY29uc3QgbGVmdCA9IEZpcmV3b3JrU2V0dGluZ3MuY29weShtaWRkbGUpO1xuICBsZWZ0LnBvcyA9IGNjLnYyKC02MDAsIC00MDApO1xuICBsZWZ0LnNpZGUgPSBjYy52MigyMDAsIDEwMDApO1xuXG4gIGNvbnN0IHJpZ2h0ID0gRmlyZXdvcmtTZXR0aW5ncy5jb3B5KG1pZGRsZSk7XG4gIHJpZ2h0LnBvcyA9IGNjLnYyKDYwMCwgLTQwMCk7XG4gIHJpZ2h0LnNpZGUgPSBjYy52MigtMjAwLCAxMDAwKTtcblxuICBzaG93RmlyZXdvcmtzKG1pZGRsZSk7XG4gIHNob3dGaXJld29ya3MobGVmdCk7XG4gIHNob3dGaXJld29ya3MocmlnaHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gb25Ib21ld29ya0ZpbmlzaCgpIHtcbiAgY29uc3QgbWlkZGxlTGF5ZXIgPSBjYy5maW5kKCdtaWRkbGVMYXllcicpO1xuICBpZiAobWlkZGxlTGF5ZXIpIHtcbiAgICBjb25zdCBtaWRkbGVMYXllckNvbXBvbmVudCA9IG1pZGRsZUxheWVyLmdldENvbXBvbmVudCgnbWlkZGxlTGF5ZXInKTtcbiAgICBpZiAobWlkZGxlTGF5ZXJDb21wb25lbnQucm9sZSA9PSAnc3R1ZGVudCcpIHtcbiAgICAgIG1pZGRsZUxheWVyQ29tcG9uZW50Lm9uSG9tZXdvcmtGaW5pc2goKCkgPT4geyB9KTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgY29uc29sZS5sb2coJ29uSG9tZXdvcmtGaW5pc2gnKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9hZERyYWdvbkJvbmVzKGRyYWdvbkRpc3BsYXkse3RleCwgYXRsYXMsIHNrZX0pIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjYy5sb2FkZXIubG9hZCh7IHVybDogdGV4LCB0eXBlOiAncG5nJyB9LCAoZXJyb3IsIHRleHR1cmUpID0+IHtcbiAgICAgIGlmIChlcnJvcikge1xuICAgICAgICByZWplY3QoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY2MubG9hZGVyLmxvYWQoeyB1cmw6IGF0bGFzLCB0eXBlOiAndHh0JyB9LCAoZXJyb3IsIGF0bGFzSnNvbikgPT4ge1xuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICByZWplY3QoKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgICBjYy5sb2FkZXIubG9hZCh7IHVybDogc2tlLCB0eXBlOiAndHh0JyB9LCAoZXJyb3IsIGRyYWdvbkJvbmVzSnNvbikgPT4ge1xuICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgIHJlamVjdCgpO1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBhdGxhc09iaiA9IG5ldyBkcmFnb25Cb25lcy5EcmFnb25Cb25lc0F0bGFzQXNzZXQoKVxuICAgICAgICAgICAgYXRsYXNPYmoudXVpZCA9IGF0bGFzXG4gICAgICAgICAgICBhdGxhc09iai5hdGxhc0pzb24gPSBhdGxhc0pzb25cbiAgICAgICAgICAgIGF0bGFzT2JqLnRleHR1cmUgPSB0ZXh0dXJlXG4gIFxuICAgICAgICAgICAgY29uc3QgYXNzZXQgPSBuZXcgZHJhZ29uQm9uZXMuRHJhZ29uQm9uZXNBc3NldCgpXG4gICAgICAgICAgICBhc3NldC51dWlkID0gc2tlXG4gICAgICAgICAgICBhc3NldC5kcmFnb25Cb25lc0pzb24gPSBkcmFnb25Cb25lc0pzb247XG5cbiAgICAgICAgICAgIGNvbnN0IGFybWF0dXJlTmFtZSA9IGFzc2V0Ll9kcmFnb25Cb25lc0pzb25EYXRhLmFybWF0dXJlWzBdLm5hbWUgfHwgJ2RlZmF1bHQnO1xuICAgICAgICAgICAgZHJhZ29uRGlzcGxheS5hcm1hdHVyZU5hbWUgPSBhcm1hdHVyZU5hbWU7XG4gIFxuICAgICAgICAgICAgZHJhZ29uRGlzcGxheS5kcmFnb25BdGxhc0Fzc2V0ID0gYXRsYXNPYmpcbiAgICAgICAgICAgIGRyYWdvbkRpc3BsYXkuZHJhZ29uQXNzZXQgPSBhc3NldDtcbiAgICAgICAgICAgIHJlc29sdmUoYXNzZXQuX2RyYWdvbkJvbmVzSnNvbkRhdGEuYXJtYXR1cmVbMF0uYWFiYik7XG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG4gIFxufVxuXG5cblxuXG5leHBvcnQgZnVuY3Rpb24gbG9hZFNwaW5lKHNrZWxldG9uLCBwaWNOYW1lLCB7dGV4LCBhdGxhcywgc2tlfSkge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIC8vIGNjLmxvYWRlci5sb2FkKHsgdXJsOiB0ZXgsIHR5cGU6ICdwbmcnIH0sIChlcnJvciwgdGV4dHVyZSkgPT4ge1xuICAgIGNjLmFzc2V0TWFuYWdlci5sb2FkUmVtb3RlKHRleCwgKGVycm9yLCB0ZXh0dXJlKSA9PiB7XG4gICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgcmVqZWN0KCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIC8vIGNjLmxvYWRlci5sb2FkKHsgdXJsOiBhdGxhcywgdHlwZTogJ3R4dCcgfSwgKGVycm9yLCBhdGxhc0pzb24pID0+IHtcbiAgICAgIGNjLmFzc2V0TWFuYWdlci5sb2FkQW55KHsgdXJsOiBhdGxhcyB9LCAoZXJyb3IsIGF0bGFzSnNvbikgPT4ge1xuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICByZWplY3QoKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgICAvLyBjYy5sb2FkZXIubG9hZCh7IHVybDogc2tlLCB0eXBlOiAndHh0JyB9LCAoZXJyb3IsIGRyYWdvbkJvbmVzSnNvbikgPT4ge1xuICAgICAgICAgIGNjLmFzc2V0TWFuYWdlci5sb2FkQW55KHsgdXJsOiBza2UgfSwgKGVycm9yLCBkcmFnb25Cb25lc0pzb24pID0+IHtcbiAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICByZWplY3QoKTtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgIHZhciBhc3NldCA9IG5ldyBzcC5Ta2VsZXRvbkRhdGEoKTtcbiAgICAgICAgICAgIGFzc2V0Ll91dWlkID0gc2tlO1xuICAgICAgICAgICAgYXNzZXQuc2tlbGV0b25Kc29uID0gSlNPTi5zdHJpbmdpZnkoIGRyYWdvbkJvbmVzSnNvbiApO1xuICAgICAgICAgICAgYXNzZXQuYXRsYXNUZXh0ID0gYXRsYXNKc29uO1xuICAgICAgICAgICAgYXNzZXQudGV4dHVyZXMgPSBbdGV4dHVyZV07XG4gICAgICAgICAgICBhc3NldC50ZXh0dXJlTmFtZXMgPSBbcGljTmFtZV07XG5cbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdwaWNOYW1lOiAnLCBwaWNOYW1lKTtcblxuXHRcdFx0ICAgICAgc2tlbGV0b24uc2tlbGV0b25EYXRhID0gYXNzZXQ7XG5cdFxuXG4gICAgICAgICAgICBjb25zdCBqc29uT2JqID0gZHJhZ29uQm9uZXNKc29uIC8vSlNPTi5wYXJzZSggYXNzZXRzWzFdKTtcbiAgICAgICAgICAgIGNvbnN0IGFuaW1hdGlvbk5hbWVPYmogPSBqc29uT2JqLmFuaW1hdGlvbnM7XG4gICAgICAgICAgICBsZXQgYW5pbWF0aW9uTmFtZXMgPSBbXTtcbiAgICAgICAgICAgIGZvciAobGV0IG5hbWUgaW4gYW5pbWF0aW9uTmFtZU9iaikge1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZygnbmFtZX5+OiAgJywgbmFtZSk7XG4gICAgICAgICAgICAgIGFuaW1hdGlvbk5hbWVzLnB1c2gobmFtZSk7XG4gICAgICAgICAgICB9XG5cdFx0XHQgICAgICBjb25zb2xlLmxvZyhcInNrZWxldG9uLmFuaW1hdGlvbjogXCIsIHNrZWxldG9uLmFuaW1hdGlvbik7XG4gICAgICAgICAgICBza2VsZXRvbi5hbmltYXRpb25OYW1lcyA9IGFuaW1hdGlvbk5hbWVzO1xuXHRcdFx0ICAgICAgc2tlbGV0b24ubG9vcCA9IGZhbHNlO1xuXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImpzb25PYmpbJ3NrZWxldG9uJ10gOiBcIiwganNvbk9ialsnc2tlbGV0b24nXSlcblxuICAgICAgICAgICAgcmVzb2x2ZShqc29uT2JqWydza2VsZXRvbiddKTtcblxuXG4gICAgICAgICAgICAvLyBjb25zdCBhdGxhc09iaiA9IG5ldyBkcmFnb25Cb25lcy5EcmFnb25Cb25lc0F0bGFzQXNzZXQoKVxuICAgICAgICAgICAgLy8gYXRsYXNPYmoudXVpZCA9IGF0bGFzXG4gICAgICAgICAgICAvLyBhdGxhc09iai5hdGxhc0pzb24gPSBhdGxhc0pzb25cbiAgICAgICAgICAgIC8vIGF0bGFzT2JqLnRleHR1cmUgPSB0ZXh0dXJlXG4gIFxuICAgICAgICAgICAgLy8gY29uc3QgYXNzZXQgPSBuZXcgZHJhZ29uQm9uZXMuRHJhZ29uQm9uZXNBc3NldCgpXG4gICAgICAgICAgICAvLyBhc3NldC51dWlkID0gc2tlXG4gICAgICAgICAgICAvLyBhc3NldC5kcmFnb25Cb25lc0pzb24gPSBkcmFnb25Cb25lc0pzb247XG5cbiAgICAgICAgICAgIC8vIGNvbnN0IGFybWF0dXJlTmFtZSA9IGFzc2V0Ll9kcmFnb25Cb25lc0pzb25EYXRhLmFybWF0dXJlWzBdLm5hbWUgfHwgJ2RlZmF1bHQnO1xuICAgICAgICAgICAgLy8gZHJhZ29uRGlzcGxheS5hcm1hdHVyZU5hbWUgPSBhcm1hdHVyZU5hbWU7XG4gIFxuICAgICAgICAgICAgLy8gZHJhZ29uRGlzcGxheS5kcmFnb25BdGxhc0Fzc2V0ID0gYXRsYXNPYmpcbiAgICAgICAgICAgIC8vIGRyYWdvbkRpc3BsYXkuZHJhZ29uQXNzZXQgPSBhc3NldDtcbiAgICAgICAgICAgIC8vIHJlc29sdmUoYXNzZXQuX2RyYWdvbkJvbmVzSnNvbkRhdGEuYXJtYXR1cmVbMF0uYWFiYik7XG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG4gIFxufVxuIl19 +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/OP15/script/defaultData.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, 'c41b05RVddEPK86siw92bnl', 'defaultData'); +// OP15/script/defaultData.js + +"use strict"; + +exports.__esModule = true; +exports.defaultData = void 0; +var defaultData = { + // "begin_audio": "http://staging-teach.cdn.ireadabc.com/b1e5378083adac9950839772c7b67f34.mp3", + "begin_audio": "http://staging-teach.cdn.ireadabc.com/81e7a94e1420a4cbcaa583d4188ab145.mp3", + "playing_audio": "http://teach.cdn.ireadabc.com/549347d1be620d9d91b7420d45b3cb7a.mp3", + "end_audio": "http://staging-teach.cdn.ireadabc.com/81e7a94e1420a4cbcaa583d4188ab145.mp3", + "bgItem": { + "url": "http://teach.cdn.ireadabc.com/adcccbd26e2cfa259920e24df01d4b92.png", + "rect": { + "x": 374.6, + "y": 0, + "width": 293.8, + "height": 390 + } + }, + "hotZoneItemArr": [{ + "id": "1638090450402", + "index": 0, + "itemType": "rect", + "fontScale": 0.81484375, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.81484375, + "skeJsonData": { + "url": "http://teach.cdn.ireadabc.com/c5c6cd890660a3c22fde393a3770458f.json", + "name": "å°æ±½è½¦_ske.json" + }, + "texJsonData": { + "url": "http://teach.cdn.ireadabc.com/cea107517406463474d907e306163226.json", + "name": "å°æ±½è½¦_tex.json" + }, + "texPngData": { + "url": "http://teach.cdn.ireadabc.com/84bce64cd4259e604a458d08ddd75bec.png", + "name": "å°æ±½è½¦_tex.png" + }, + "dragDot": { + "x": 521.5, + "y": 195 + }, + "gIdx": "1", + "rect": { + "x": 46.9, + "y": 95, + "width": 200, + "height": 200 + } + }, { + "id": "1638090465133", + "index": 1, + "pic_url": "http://teach.cdn.ireadabc.com/70d02ee3788e373f707a45530cd2f9c0.png", + "itemType": "pic", + "fontScale": 0.81484375, + "imgScale": 0.23579201934703747, + "imgSizeW": 1246, + "imgSizeH": 1654, + "mapScale": 0.81484375, + "dragDot": { + "x": 521.5, + "y": 195 + }, + "gIdx": "2", + "rect": { + "x": 0, + "y": 1, + "width": 293.8, + "height": 390 + } + }, { + "id": "1638090485031", + "index": 2, + "audio_url": "http://teach.cdn.ireadabc.com/e31c3b1914837a611d4d3bb1ceb00773.mp3", + "itemType": "rect", + "fontScale": 0.81484375, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.81484375, + "skeJsonData": { + "url": "http://teach.cdn.ireadabc.com/d2d7de9f8079f36e8354d16e4ca26476.json", + "name": "房å_ske.json" + }, + "texJsonData": { + "url": "http://teach.cdn.ireadabc.com/204ea18018a352a30fd233a46f9a0a1a.json", + "name": "房å_tex.json" + }, + "texPngData": { + "url": "http://teach.cdn.ireadabc.com/cf8da0ab00a7d9f34bdf8f490c29dcbf.png", + "name": "房å_tex.png" + }, + "dragDot": { + "x": 521.5, + "y": 195 + }, + "gIdx": "0", + "labelText": "14", + "posX": 578, + "posY": 160.99791334496155, + "rect": { + "x": 124.9, + "y": 108, + "width": 170, + "height": 106 + } + }, { + "id": "1638090539787", + "index": 3, + "itemType": "rect", + "fontScale": 0.81484375, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.81484375, + "skeJsonData": { + "url": "http://teach.cdn.ireadabc.com/ed2ac4931a9c00ff6c4298381722676e.json", + "name": "牛_ske.json" + }, + "texJsonData": { + "url": "http://teach.cdn.ireadabc.com/0e153093ee7265b6a843847543d6110b.json", + "name": "牛_tex.json" + }, + "texPngData": { + "url": "http://teach.cdn.ireadabc.com/631661e13616eea6cde9f9e6610f5008.png", + "name": "牛_tex.png" + }, + "dragDot": { + "x": 521.5, + "y": 197.46116504854368 + }, + "gIdx": "1", + "rect": { + "x": 46.9, + "y": 95, + "width": 200, + "height": 200 + } + }, { + "id": "1638090562867", + "index": 4, + "audio_url": "http://teach.cdn.ireadabc.com/bf1924c502ca1a4ac928a31e7c8aa70e.mp3", + "itemType": "rect", + "fontScale": 0.81484375, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.81484375, + "skeJsonData": { + "url": "http://teach.cdn.ireadabc.com/bd3c2cc93b1593433a58d8482972ff66.json", + "name": "苹果_ske.json" + }, + "texJsonData": { + "url": "http://teach.cdn.ireadabc.com/1f54df317a8c86271e29d6db3ffb55ce.json", + "name": "苹果_tex.json" + }, + "texPngData": { + "url": "http://teach.cdn.ireadabc.com/734ac06a7ef018b457e7ac7692789ffa.png", + "name": "苹果_tex.png" + }, + "dragDot": { + "x": 521.5, + "y": 197.46116504854368 + }, + "gIdx": "0", + "labelText": "6", + "posX": 429, + "posY": 146, + "rect": { + "x": -0.1, + "y": 70, + "width": 122, + "height": 152 + } + }, { + "id": "1638090594247", + "index": 5, + "itemType": "rect", + "fontScale": 0.81484375, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.81484375, + "skeJsonData": { + "url": "http://teach.cdn.ireadabc.com/1d4b251caf0c0b8245fb17cd8445672c.json", + "name": "农夫_ske.json" + }, + "texJsonData": { + "url": "http://teach.cdn.ireadabc.com/1fdd04cacb6d543cf05ce64e8124a6ff.json", + "name": "农夫_tex.json" + }, + "texPngData": { + "url": "http://teach.cdn.ireadabc.com/8f582cb39eb349da08e06289b0ce6c16.png", + "name": "农夫_tex.png" + }, + "dragDot": { + "x": 521.5, + "y": 197.46116504854368 + }, + "gIdx": "1", + "rect": { + "x": 46.9, + "y": 95, + "width": 200, + "height": 200 + } + }, { + "id": "1638090663056", + "index": 6, + "itemType": "rect", + "fontScale": 0.81484375, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.81484375, + "skeJsonData": { + "url": "http://teach.cdn.ireadabc.com/4503721901880d0b6c3ad6d4261e958b.json", + "name": "å°å¥³å©_ske.json" + }, + "texJsonData": { + "url": "http://teach.cdn.ireadabc.com/fc4fd0b2f672dff7c7b2148830164090.json", + "name": "å°å¥³å©_tex.json" + }, + "texPngData": { + "url": "http://teach.cdn.ireadabc.com/4be41c15972caf99eef956ba48759c91.png", + "name": "å°å¥³å©_tex.png" + }, + "dragDot": { + "x": 521.5, + "y": 197.46116504854368 + }, + "gIdx": "1", + "rect": { + "x": 46.9, + "y": 95, + "width": 200, + "height": 200 + } + }, { + "id": "1638090685571", + "index": 7, + "itemType": "rect", + "fontScale": 0.81484375, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.81484375, + "skeJsonData": { + "url": "http://teach.cdn.ireadabc.com/55951c794b414ab58cca023642819e37.json", + "name": "æ¯é¸¡_ske.json" + }, + "texJsonData": { + "url": "http://teach.cdn.ireadabc.com/47b93323b1d1e1e6020704c537f46820.json", + "name": "æ¯é¸¡_tex.json" + }, + "texPngData": { + "url": "http://teach.cdn.ireadabc.com/dd66021ff860b02a559d59817c71e27f.png", + "name": "æ¯é¸¡_tex.png" + }, + "dragDot": { + "x": 521.5, + "y": 197.46116504854368 + }, + "gIdx": "1", + "rect": { + "x": 46.9, + "y": 95, + "width": 200, + "height": 200 + } + }, { + "id": "1638090695652", + "index": 8, + "audio_url": "http://teach.cdn.ireadabc.com/323feb19d153069702ffd21097f18f79.mp3", + "itemType": "rect", + "fontScale": 0.81484375, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.81484375, + "skeJsonData": { + "url": "http://teach.cdn.ireadabc.com/cd7c7a756c0f79d28f419576e3b85b0c.json", + "name": "é¸å_ske.json" + }, + "texJsonData": { + "url": "http://teach.cdn.ireadabc.com/7613f30893a5f64773a77723c1d67f0d.json", + "name": "é¸å_tex.json" + }, + "texPngData": { + "url": "http://teach.cdn.ireadabc.com/59b2293ef4eea9d64ff9821bc5d69a6d.png", + "name": "é¸å_tex.png" + }, + "dragDot": { + "x": 521.5, + "y": 197.46116504854368 + }, + "gIdx": "0", + "labelText": "11", + "posX": 564.4993151491155, + "posY": 247.99735690361797, + "rect": { + "x": 127.9, + "y": 216, + "width": 124, + "height": 64 + } + }, { + "id": "1638090758159", + "index": 9, + "audio_url": "http://teach.cdn.ireadabc.com/b903b174f09107517b5d6f8934b73447.mp3", + "itemType": "rect", + "fontScale": 0.81484375, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.81484375, + "skeJsonData": { + "url": "http://teach.cdn.ireadabc.com/b9fa85c227daa6539f12cab5a5058052.json", + "name": "鸡蛋_ske.json" + }, + "texJsonData": { + "url": "http://teach.cdn.ireadabc.com/99aa8de7b69000ac6c5e0fb6a508b692.json", + "name": "鸡蛋_tex.json" + }, + "texPngData": { + "url": "http://teach.cdn.ireadabc.com/09bd0a34a4508613fd7c167724e4a969.png", + "name": "鸡蛋_tex.png" + }, + "dragDot": { + "x": 521.5, + "y": 197.46116504854368 }, - cancel: xt, - start: wt, - stop: bt, - assign: _t, - after: Et, - done: Tt, - respond: function respond(t, n) { - return yt(t, _e(_e({}, n), { - to: function to(t, e, n) { - return n._event.origin; - } - })); + "gIdx": "0", + "labelText": "7", + "posX": 471.50036382703234, + "posY": 291.99683256465954, + "rect": { + "x": 67.4, + "y": 223, + "width": 59, + "height": 138 + } + }, { + "id": "1638090812155", + "index": 10, + "itemType": "rect", + "fontScale": 0.81484375, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.81484375, + "skeJsonData": { + "url": "http://teach.cdn.ireadabc.com/357fef8204228afb43d0ce73746228e5.json", + "name": "é±¼_ske.json" }, - forwardTo: Ot, - escalate: function escalate(n, r) { - return gt(function (t, e, r) { - return { - type: at, - data: N(n) ? n(t, e, r) : n - }; - }, _e(_e({}, r), { - to: t.SpecialTargets.Parent - })); + "texJsonData": { + "url": "http://teach.cdn.ireadabc.com/f694e5442095a317fc7d8b1390e630c7.json", + "name": "é±¼_tex.json" }, - choose: function choose(e) { - return { - type: t.ActionTypes.Choose, - conds: e - }; + "texPngData": { + "url": "http://teach.cdn.ireadabc.com/f566cca10fd83f62a465b144ac73d483.png", + "name": "é±¼_tex.png" }, - pure: function pure(e) { - return { - type: t.ActionTypes.Pure, - get: e - }; + "dragDot": { + "x": 521.5, + "y": 197.46116504854368 + }, + "gIdx": "1", + "rect": { + "x": 46.9, + "y": 95, + "width": 200, + "height": 200 } - }; - t.Interpreter = Zt, t.Machine = function (t, e, n) { - return void 0 === n && (n = t.context), new zt(t, e, n); - }, t.State = kt, t.StateNode = zt, t.actions = ee, t.assign = _t, t.createMachine = function (t, e) { - return new zt(t, e); - }, t.createSchema = function (t) { - return t; - }, t.doneInvoke = Nt, t.forwardTo = Ot, t.interpret = te, t.mapState = function (t, e) { - var n, i, o; - - try { - for (var a = r(s(t)), u = a.next(); !u.done; u = a.next()) { - var h = u.value; - c(h, e) && (!o || e.length > o.length) && (o = h); - } - } catch (t) { - n = { - error: t - }; - } finally { - try { - u && !u.done && (i = a["return"]) && i.call(a); - } finally { - if (n) throw n.error; - } + }, { + "id": "1638090824244", + "index": 11, + "audio_url": "http://teach.cdn.ireadabc.com/2656b72aec7f6def07713fbc99309168.mp3", + "itemType": "rect", + "fontScale": 0.81484375, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.81484375, + "skeJsonData": { + "url": "http://teach.cdn.ireadabc.com/20cbf3d186a197baaed38204dd017f51.json", + "name": "猫_ske.json" + }, + "texJsonData": { + "url": "http://teach.cdn.ireadabc.com/d7de5a32de3ee1ad660dc509ba8adf1d.json", + "name": "猫_tex.json" + }, + "texPngData": { + "url": "http://teach.cdn.ireadabc.com/af86e967aab8632cd0b26d60a62f0675.png", + "name": "猫_tex.png" + }, + "dragDot": { + "x": 521.5, + "y": 197.46116504854368 + }, + "gIdx": "0", + "labelText": "10", + "posX": 408.50114498507236, + "posY": 288.99689676943, + "rect": { + "x": 1.4, + "y": 222, + "width": 65, + "height": 134 } - - return t[o]; - }, t.matchState = function (t, e, n) { - var o, - a, - s = kt.from(t, t instanceof kt ? t.context : void 0); - - try { - for (var c = r(e), u = c.next(); !u.done; u = c.next()) { - var h = i(u.value, 2), - f = h[0], - l = h[1]; - if (s.matches(f)) return l(s); - } - } catch (t) { - o = { - error: t - }; - } finally { - try { - u && !u.done && (a = c["return"]) && a.call(c); - } finally { - if (o) throw o.error; - } + }, { + "id": "1638090897644", + "index": 12, + "audio_url": "http://teach.cdn.ireadabc.com/9bbf8ba2fa7f96ea5a95c27a384414a2.mp3", + "itemType": "rect", + "fontScale": 0.81484375, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.81484375, + "skeJsonData": { + "url": "http://teach.cdn.ireadabc.com/d8506ebddb29c8d08b4b93376b45f5c9.json", + "name": "鸟_ske.json" + }, + "texJsonData": { + "url": "http://teach.cdn.ireadabc.com/9fad47c99025b7b229df52afb797ec5c.json", + "name": "鸟_tex.json" + }, + "texPngData": { + "url": "http://teach.cdn.ireadabc.com/e86b136b9706768c5ca0dba3dc0aab21.png", + "name": "鸟_tex.png" + }, + "dragDot": { + "x": 521.5, + "y": 197.46116504854368 + }, + "gIdx": "0", + "labelText": "9", + "posX": 573, + "posY": 74, + "rect": { + "x": 127.9, + "y": 41, + "width": 154, + "height": 66 } - - return n(s); - }, t.matchesState = c, t.send = yt, t.sendParent = gt, t.sendUpdate = mt, t.spawn = function (t, n) { - var r = function (t) { - return A(t) ? _e(_e({}, Yt), { - name: t - }) : _e(_e(_e({}, Yt), { - name: C() - }), t); - }(n); - - return function (e) { - return e ? e.spawn(t, r.name, r) : Vt(t, r.name); - }(It[It.length - 1]); - }, Object.defineProperty(t, "__esModule", { - value: !0 - }); -}); + }, { + "id": "1638090948950", + "index": 13, + "itemType": "rect", + "fontScale": 0.81484375, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.81484375, + "skeJsonData": { + "url": "http://teach.cdn.ireadabc.com/3d1d49e583d97cd5097d08102265b1c6.json", + "name": "èš‚èš_ske.json" + }, + "texJsonData": { + "url": "http://teach.cdn.ireadabc.com/9a3a5c871b288aebb1e6920f1e9709f8.json", + "name": "èš‚èš_tex.json" + }, + "texPngData": { + "url": "http://teach.cdn.ireadabc.com/1fad62f313b6ff72a642cb4b15aeaf04.png", + "name": "èš‚èš_tex.png" + }, + "dragDot": { + "x": 521.5, + "y": 197.46116504854368 + }, + "gIdx": "1", + "rect": { + "x": 46.9, + "y": 95, + "width": 200, + "height": 200 + } + }], + "guide_audio": "http://staging-teach.cdn.ireadabc.com/d6c1d3b84a4774a0fc183a14abbb6c09.mp3", + "wrong_audio1": "http://staging-teach.cdn.ireadabc.com/b77ef2a6cdcb6504520484a9b197b2fd.mp3", + "wrong_audio2": "http://staging-teach.cdn.ireadabc.com/8dacb2445816e1f068ea116752c21173.mp3", + "begin_audio1": "http://staging-teach.cdn.ireadabc.com/e45ad0823ae2c8e04246d76c7f57030d.mp3", + "begin_audio2": "http://staging-teach.cdn.ireadabc.com/05232ad51f8d9e1af6dd1273147bc58f.mp3", + "right_audio": "http://staging-teach.cdn.ireadabc.com/330eff8d5e8cc429965da82652207ff2.mp3", + "wrong_audio": "http://staging-teach.cdn.ireadabc.com/1664170e569d974279bcec626be176d9.mp3", + "begin_sep_time": 15 +}; +exports.defaultData = defaultData; cc._RF.pop(); - -}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) } if (nodeEnv) { __define(__module.exports, __require, __module); @@ -5834,5 +6335,5 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9hc3NldHMvT1AxNS9zY3JpcHQveHN0YXRlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLENBQUMsVUFBUyxDQUFULEVBQVcsQ0FBWCxFQUFhO0FBQUMsY0FBVSxPQUFPLE9BQWpCLElBQTBCLGVBQWEsT0FBTyxNQUE5QyxHQUFxRCxDQUFDLENBQUMsT0FBRCxDQUF0RCxHQUFnRSxjQUFZLE9BQU8sTUFBbkIsSUFBMkIsTUFBTSxDQUFDLEdBQWxDLEdBQXNDLE1BQU0sQ0FBQyxDQUFDLFNBQUQsQ0FBRCxFQUFhLENBQWIsQ0FBNUMsR0FBNEQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLGVBQWEsT0FBTyxVQUFwQixHQUErQixVQUEvQixHQUEwQyxDQUFDLElBQUUsSUFBaEQsRUFBc0QsTUFBdEQsR0FBNkQsRUFBOUQsQ0FBN0g7QUFBK0wsQ0FBN00sU0FBb04sVUFBUyxDQUFULEVBQVc7QUFBQztBQUNqTztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUFvRixNQUFJLEVBQUMsR0FBQyxhQUFVO0FBQUMsV0FBTSxDQUFDLEVBQUMsR0FBQyxNQUFNLENBQUMsTUFBUCxJQUFlLFVBQVMsQ0FBVCxFQUFXO0FBQUMsV0FBSSxJQUFJLENBQUosRUFBTSxDQUFDLEdBQUMsQ0FBUixFQUFVLENBQUMsR0FBQyxTQUFTLENBQUMsTUFBMUIsRUFBaUMsQ0FBQyxHQUFDLENBQW5DLEVBQXFDLENBQUMsRUFBdEM7QUFBeUMsYUFBSSxJQUFJLENBQVIsSUFBYSxDQUFDLEdBQUMsU0FBUyxDQUFDLENBQUQsQ0FBeEI7QUFBNEIsVUFBQSxNQUFNLENBQUMsU0FBUCxDQUFpQixjQUFqQixDQUFnQyxJQUFoQyxDQUFxQyxDQUFyQyxFQUF1QyxDQUF2QyxNQUE0QyxDQUFDLENBQUMsQ0FBRCxDQUFELEdBQUssQ0FBQyxDQUFDLENBQUQsQ0FBbEQ7QUFBNUI7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LEVBQUosQ0FBRixFQUFVO0FBQUMsUUFBQSxJQUFJLEVBQUM7QUFBTixPQUFWLENBQU4sR0FBMEIsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRCxFQUFJLEVBQUosQ0FBRixFQUFVO0FBQUMsUUFBQSxJQUFJLEVBQUMsQ0FBQztBQUFQLE9BQVYsQ0FBRixFQUF3QixDQUF4QixDQUFsQztBQUE2RCxLQUF6RSxDQUEwRSxDQUExRSxDQUFOOztBQUFtRixXQUFPLFVBQVMsQ0FBVCxFQUFXO0FBQUMsYUFBTyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUYsQ0FBUSxDQUFSLEVBQVUsQ0FBQyxDQUFDLElBQVosRUFBaUIsQ0FBakIsQ0FBRCxHQUFxQixFQUFFLENBQUMsQ0FBRCxFQUFHLENBQUMsQ0FBQyxJQUFMLENBQS9CO0FBQTBDLEtBQXRELENBQXVELEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBSCxHQUFVLENBQVgsQ0FBekQsQ0FBUDtBQUErRSxHQUFuakMsRUFBb2pDLE1BQU0sQ0FBQyxjQUFQLENBQXNCLENBQXRCLEVBQXdCLFlBQXhCLEVBQXFDO0FBQUMsSUFBQSxLQUFLLEVBQUMsQ0FBQztBQUFSLEdBQXJDLENBQXBqQztBQUFxbUMsQ0FkaGdwRCxDQUFEIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIhZnVuY3Rpb24odCxlKXtcIm9iamVjdFwiPT10eXBlb2YgZXhwb3J0cyYmXCJ1bmRlZmluZWRcIiE9dHlwZW9mIG1vZHVsZT9lKGV4cG9ydHMpOlwiZnVuY3Rpb25cIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoW1wiZXhwb3J0c1wiXSxlKTplKCh0PVwidW5kZWZpbmVkXCIhPXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6dHx8c2VsZikuWFN0YXRlPXt9KX0odGhpcywoZnVuY3Rpb24odCl7XCJ1c2Ugc3RyaWN0XCI7XG4vKiEgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cblxuICAgIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueVxuICAgIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cblxuICAgIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEhcbiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcbiAgICBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXG4gICAgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NXG4gICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcbiAgICBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXG4gICAgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cbiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL3ZhciBlPWZ1bmN0aW9uKCl7cmV0dXJuKGU9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MSxyPWFyZ3VtZW50cy5sZW5ndGg7bjxyO24rKylmb3IodmFyIGkgaW4gZT1hcmd1bWVudHNbbl0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsaSkmJih0W2ldPWVbaV0pO3JldHVybiB0fSkuYXBwbHkodGhpcyxhcmd1bWVudHMpfTtmdW5jdGlvbiBuKHQsZSl7dmFyIG49e307Zm9yKHZhciByIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikmJmUuaW5kZXhPZihyKTwwJiYobltyXT10W3JdKTtpZihudWxsIT10JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgaT0wO2ZvcihyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCk7aTxyLmxlbmd0aDtpKyspZS5pbmRleE9mKHJbaV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh0LHJbaV0pJiYobltyW2ldXT10W3JbaV1dKX1yZXR1cm4gbn1mdW5jdGlvbiByKHQpe3ZhciBlPVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yLG49ZSYmdFtlXSxyPTA7aWYobilyZXR1cm4gbi5jYWxsKHQpO2lmKHQmJlwibnVtYmVyXCI9PXR5cGVvZiB0Lmxlbmd0aClyZXR1cm57bmV4dDpmdW5jdGlvbigpe3JldHVybiB0JiZyPj10Lmxlbmd0aCYmKHQ9dm9pZCAwKSx7dmFsdWU6dCYmdFtyKytdLGRvbmU6IXR9fX07dGhyb3cgbmV3IFR5cGVFcnJvcihlP1wiT2JqZWN0IGlzIG5vdCBpdGVyYWJsZS5cIjpcIlN5bWJvbC5pdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIil9ZnVuY3Rpb24gaSh0LGUpe3ZhciBuPVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmdFtTeW1ib2wuaXRlcmF0b3JdO2lmKCFuKXJldHVybiB0O3ZhciByLGksbz1uLmNhbGwodCksYT1bXTt0cnl7Zm9yKDsodm9pZCAwPT09ZXx8ZS0tID4wKSYmIShyPW8ubmV4dCgpKS5kb25lOylhLnB1c2goci52YWx1ZSl9Y2F0Y2godCl7aT17ZXJyb3I6dH19ZmluYWxseXt0cnl7ciYmIXIuZG9uZSYmKG49by5yZXR1cm4pJiZuLmNhbGwobyl9ZmluYWxseXtpZihpKXRocm93IGkuZXJyb3J9fXJldHVybiBhfWZ1bmN0aW9uIG8odCxlLG4pe2lmKG58fDI9PT1hcmd1bWVudHMubGVuZ3RoKWZvcih2YXIgcixpPTAsbz1lLmxlbmd0aDtpPG87aSsrKSFyJiZpIGluIGV8fChyfHwocj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlLDAsaSkpLHJbaV09ZVtpXSk7cmV0dXJuIHQuY29uY2F0KHJ8fEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGUpKX12YXIgYT17fTtmdW5jdGlvbiBzKHQpe3JldHVybiBPYmplY3Qua2V5cyh0KX1mdW5jdGlvbiBjKHQsZSxuKXt2b2lkIDA9PT1uJiYobj1cIi5cIik7dmFyIHI9Zih0LG4pLGk9ZihlLG4pO3JldHVybiBBKGkpPyEhQShyKSYmaT09PXI6QShyKT9yIGluIGk6cyhyKS5ldmVyeSgoZnVuY3Rpb24odCl7cmV0dXJuIHQgaW4gaSYmYyhyW3RdLGlbdF0pfSkpfWZ1bmN0aW9uIHUodCl7dHJ5e3JldHVybiBBKHQpfHxcIm51bWJlclwiPT10eXBlb2YgdD9cIlwiLmNvbmNhdCh0KTp0LnR5cGV9Y2F0Y2godCl7dGhyb3cgbmV3IEVycm9yKFwiRXZlbnRzIG11c3QgYmUgc3RyaW5ncyBvciBvYmplY3RzIHdpdGggYSBzdHJpbmcgZXZlbnQudHlwZSBwcm9wZXJ0eS5cIil9fWZ1bmN0aW9uIGgodCxlKXt0cnl7cmV0dXJuIFQodCk/dDp0LnRvU3RyaW5nKCkuc3BsaXQoZSl9Y2F0Y2goZSl7dGhyb3cgbmV3IEVycm9yKFwiJ1wiLmNvbmNhdCh0LFwiJyBpcyBub3QgYSB2YWxpZCBzdGF0ZSBwYXRoLlwiKSl9fWZ1bmN0aW9uIGYodCxlKXtyZXR1cm5cIm9iamVjdFwiPT10eXBlb2Yobj10KSYmXCJ2YWx1ZVwiaW4gbiYmXCJjb250ZXh0XCJpbiBuJiZcImV2ZW50XCJpbiBuJiZcIl9ldmVudFwiaW4gbj90LnZhbHVlOlQodCk/bCh0KTpcInN0cmluZ1wiIT10eXBlb2YgdD90OmwoaCh0LGUpKTt2YXIgbn1mdW5jdGlvbiBsKHQpe2lmKDE9PT10Lmxlbmd0aClyZXR1cm4gdFswXTtmb3IodmFyIGU9e30sbj1lLHI9MDtyPHQubGVuZ3RoLTE7cisrKXI9PT10Lmxlbmd0aC0yP25bdFtyXV09dFtyKzFdOihuW3Rbcl1dPXt9LG49blt0W3JdXSk7cmV0dXJuIGV9ZnVuY3Rpb24gZCh0LGUpe2Zvcih2YXIgbj17fSxyPXModCksaT0wO2k8ci5sZW5ndGg7aSsrKXt2YXIgbz1yW2ldO25bb109ZSh0W29dLG8sdCxpKX1yZXR1cm4gbn1mdW5jdGlvbiBwKHQsZSxuKXt2YXIgaSxvLGE9e307dHJ5e2Zvcih2YXIgYz1yKHModCkpLHU9Yy5uZXh0KCk7IXUuZG9uZTt1PWMubmV4dCgpKXt2YXIgaD11LnZhbHVlLGY9dFtoXTtuKGYpJiYoYVtoXT1lKGYsaCx0KSl9fWNhdGNoKHQpe2k9e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e3UmJiF1LmRvbmUmJihvPWMucmV0dXJuKSYmby5jYWxsKGMpfWZpbmFsbHl7aWYoaSl0aHJvdyBpLmVycm9yfX1yZXR1cm4gYX12YXIgdj1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIG4saSxvPWU7dHJ5e2Zvcih2YXIgYT1yKHQpLHM9YS5uZXh0KCk7IXMuZG9uZTtzPWEubmV4dCgpKXtvPW9bcy52YWx1ZV19fWNhdGNoKHQpe249e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e3MmJiFzLmRvbmUmJihpPWEucmV0dXJuKSYmaS5jYWxsKGEpfWZpbmFsbHl7aWYobil0aHJvdyBuLmVycm9yfX1yZXR1cm4gb319O2Z1bmN0aW9uIHkodCl7cmV0dXJuIHQ/QSh0KT9bW3RdXTpnKHModCkubWFwKChmdW5jdGlvbihlKXt2YXIgbj10W2VdO3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiBufHxuJiZPYmplY3Qua2V5cyhuKS5sZW5ndGg/eSh0W2VdKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybltlXS5jb25jYXQodCl9KSk6W1tlXV19KSkpOltbXV19ZnVuY3Rpb24gZyh0KXt2YXIgZTtyZXR1cm4oZT1bXSkuY29uY2F0LmFwcGx5KGUsbyhbXSxpKHQpLCExKSl9ZnVuY3Rpb24gbSh0KXtyZXR1cm4gVCh0KT90Olt0XX1mdW5jdGlvbiBTKHQpe3JldHVybiB2b2lkIDA9PT10P1tdOm0odCl9ZnVuY3Rpb24geCh0LGUsbil7dmFyIGksbztpZihOKHQpKXJldHVybiB0KGUsbi5kYXRhKTt2YXIgYT17fTt0cnl7Zm9yKHZhciBzPXIoT2JqZWN0LmtleXModCkpLGM9cy5uZXh0KCk7IWMuZG9uZTtjPXMubmV4dCgpKXt2YXIgdT1jLnZhbHVlLGg9dFt1XTtOKGgpP2FbdV09aChlLG4uZGF0YSk6YVt1XT1ofX1jYXRjaCh0KXtpPXtlcnJvcjp0fX1maW5hbGx5e3RyeXtjJiYhYy5kb25lJiYobz1zLnJldHVybikmJm8uY2FsbChzKX1maW5hbGx5e2lmKGkpdGhyb3cgaS5lcnJvcn19cmV0dXJuIGF9ZnVuY3Rpb24gdyh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIFByb21pc2V8fCEobnVsbD09PXR8fCFOKHQpJiZcIm9iamVjdFwiIT10eXBlb2YgdHx8IU4odC50aGVuKSl9ZnVuY3Rpb24gYih0LGUpe3ZhciBuLG8sYT1pKFtbXSxbXV0sMikscz1hWzBdLGM9YVsxXTt0cnl7Zm9yKHZhciB1PXIodCksaD11Lm5leHQoKTshaC5kb25lO2g9dS5uZXh0KCkpe3ZhciBmPWgudmFsdWU7ZShmKT9zLnB1c2goZik6Yy5wdXNoKGYpfX1jYXRjaCh0KXtuPXtlcnJvcjp0fX1maW5hbGx5e3RyeXtoJiYhaC5kb25lJiYobz11LnJldHVybikmJm8uY2FsbCh1KX1maW5hbGx5e2lmKG4pdGhyb3cgbi5lcnJvcn19cmV0dXJuW3MsY119ZnVuY3Rpb24gXyh0LGUpe3JldHVybiBkKHQuc3RhdGVzLChmdW5jdGlvbih0LG4pe2lmKHQpe3ZhciByPShBKGUpP3ZvaWQgMDplW25dKXx8KHQ/dC5jdXJyZW50OnZvaWQgMCk7aWYocilyZXR1cm57Y3VycmVudDpyLHN0YXRlczpfKHQscil9fX0pKX1mdW5jdGlvbiBFKHQsZSxuLGkpe3JldHVybiB0P24ucmVkdWNlKChmdW5jdGlvbih0LG4pe3ZhciBvLGEsYz1uLmFzc2lnbm1lbnQsdT17c3RhdGU6aSxhY3Rpb246bixfZXZlbnQ6ZX0saD17fTtpZihOKGMpKWg9Yyh0LGUuZGF0YSx1KTtlbHNlIHRyeXtmb3IodmFyIGY9cihzKGMpKSxsPWYubmV4dCgpOyFsLmRvbmU7bD1mLm5leHQoKSl7dmFyIGQ9bC52YWx1ZSxwPWNbZF07aFtkXT1OKHApP3AodCxlLmRhdGEsdSk6cH19Y2F0Y2godCl7bz17ZXJyb3I6dH19ZmluYWxseXt0cnl7bCYmIWwuZG9uZSYmKGE9Zi5yZXR1cm4pJiZhLmNhbGwoZil9ZmluYWxseXtpZihvKXRocm93IG8uZXJyb3J9fXJldHVybiBPYmplY3QuYXNzaWduKHt9LHQsaCl9KSx0KTp0fWZ1bmN0aW9uIFQodCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCl9ZnVuY3Rpb24gTih0KXtyZXR1cm5cImZ1bmN0aW9uXCI9PXR5cGVvZiB0fWZ1bmN0aW9uIEEodCl7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIHR9ZnVuY3Rpb24gTyh0LGUpe2lmKHQpcmV0dXJuIEEodCk/e3R5cGU6XCJ4c3RhdGUuZ3VhcmRcIixuYW1lOnQscHJlZGljYXRlOmU/ZVt0XTp2b2lkIDB9Ok4odCk/e3R5cGU6XCJ4c3RhdGUuZ3VhcmRcIixuYW1lOnQubmFtZSxwcmVkaWNhdGU6dH06dH12YXIgUD1mdW5jdGlvbigpe3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLm9ic2VydmFibGV8fFwiQEBvYnNlcnZhYmxlXCJ9KCk7ZnVuY3Rpb24gayh0KXt0cnl7cmV0dXJuXCJfX3hzdGF0ZW5vZGVcImluIHR9Y2F0Y2godCl7cmV0dXJuITF9fXZhciBJLGosQz1mdW5jdGlvbigpe3ZhciB0PTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuKCsrdCkudG9TdHJpbmcoMTYpfX0oKTtmdW5jdGlvbiBWKHQsbil7cmV0dXJuIEEodCl8fFwibnVtYmVyXCI9PXR5cGVvZiB0P2Uoe3R5cGU6dH0sbik6dH1mdW5jdGlvbiBMKHQsbil7aWYoIUEodCkmJlwiJCR0eXBlXCJpbiB0JiZcInNjeG1sXCI9PT10LiQkdHlwZSlyZXR1cm4gdDt2YXIgcj1WKHQpO3JldHVybiBlKHtuYW1lOnIudHlwZSxkYXRhOnIsJCR0eXBlOlwic2N4bWxcIix0eXBlOlwiZXh0ZXJuYWxcIn0sbil9ZnVuY3Rpb24gRCh0LG4pe3JldHVybiBtKG4pLm1hcCgoZnVuY3Rpb24obil7cmV0dXJuIHZvaWQgMD09PW58fFwic3RyaW5nXCI9PXR5cGVvZiBufHxrKG4pP3t0YXJnZXQ6bixldmVudDp0fTplKGUoe30sbikse2V2ZW50OnR9KX0pKX1mdW5jdGlvbiBSKHQsZSxuLHIsaSl7dmFyIG89dC5vcHRpb25zLmd1YXJkcyxhPXtzdGF0ZTppLGNvbmQ6ZSxfZXZlbnQ6cn07aWYoXCJ4c3RhdGUuZ3VhcmRcIj09PWUudHlwZSlyZXR1cm4oKG51bGw9PW8/dm9pZCAwOm9bZS5uYW1lXSl8fGUucHJlZGljYXRlKShuLHIuZGF0YSxhKTt2YXIgcz1vW2UudHlwZV07aWYoIXMpdGhyb3cgbmV3IEVycm9yKFwiR3VhcmQgJ1wiLmNvbmNhdChlLnR5cGUsXCInIGlzIG5vdCBpbXBsZW1lbnRlZCBvbiBtYWNoaW5lICdcIikuY29uY2F0KHQuaWQsXCInLlwiKSk7cmV0dXJuIHMobixyLmRhdGEsYSl9ZnVuY3Rpb24gTSh0KXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgdD97dHlwZTp0fTp0fWZ1bmN0aW9uIHoodCxlLG4pe2lmKFwib2JqZWN0XCI9PXR5cGVvZiB0KXJldHVybiB0O3ZhciByPWZ1bmN0aW9uKCl7fTtyZXR1cm57bmV4dDp0LGVycm9yOmV8fHIsY29tcGxldGU6bnx8cn19KEk9dC5BY3Rpb25UeXBlc3x8KHQuQWN0aW9uVHlwZXM9e30pKS5TdGFydD1cInhzdGF0ZS5zdGFydFwiLEkuU3RvcD1cInhzdGF0ZS5zdG9wXCIsSS5SYWlzZT1cInhzdGF0ZS5yYWlzZVwiLEkuU2VuZD1cInhzdGF0ZS5zZW5kXCIsSS5DYW5jZWw9XCJ4c3RhdGUuY2FuY2VsXCIsSS5OdWxsRXZlbnQ9XCJcIixJLkFzc2lnbj1cInhzdGF0ZS5hc3NpZ25cIixJLkFmdGVyPVwieHN0YXRlLmFmdGVyXCIsSS5Eb25lU3RhdGU9XCJkb25lLnN0YXRlXCIsSS5Eb25lSW52b2tlPVwiZG9uZS5pbnZva2VcIixJLkxvZz1cInhzdGF0ZS5sb2dcIixJLkluaXQ9XCJ4c3RhdGUuaW5pdFwiLEkuSW52b2tlPVwieHN0YXRlLmludm9rZVwiLEkuRXJyb3JFeGVjdXRpb249XCJlcnJvci5leGVjdXRpb25cIixJLkVycm9yQ29tbXVuaWNhdGlvbj1cImVycm9yLmNvbW11bmljYXRpb25cIixJLkVycm9yUGxhdGZvcm09XCJlcnJvci5wbGF0Zm9ybVwiLEkuRXJyb3JDdXN0b209XCJ4c3RhdGUuZXJyb3JcIixJLlVwZGF0ZT1cInhzdGF0ZS51cGRhdGVcIixJLlB1cmU9XCJ4c3RhdGUucHVyZVwiLEkuQ2hvb3NlPVwieHN0YXRlLmNob29zZVwiLChqPXQuU3BlY2lhbFRhcmdldHN8fCh0LlNwZWNpYWxUYXJnZXRzPXt9KSkuUGFyZW50PVwiI19wYXJlbnRcIixqLkludGVybmFsPVwiI19pbnRlcm5hbFwiO3ZhciBGPWZ1bmN0aW9uKHQpe3JldHVyblwiYXRvbWljXCI9PT10LnR5cGV8fFwiZmluYWxcIj09PXQudHlwZX07ZnVuY3Rpb24gVSh0KXtyZXR1cm4gcyh0LnN0YXRlcykubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gdC5zdGF0ZXNbZV19KSl9ZnVuY3Rpb24gQih0KXt2YXIgZT1bdF07cmV0dXJuIEYodCk/ZTplLmNvbmNhdChnKFUodCkubWFwKEIpKSl9ZnVuY3Rpb24gSih0LGUpe3ZhciBuLGksbyxhLHMsYyx1LGgsZj1xKG5ldyBTZXQodCkpLGw9bmV3IFNldChlKTt0cnl7Zm9yKHZhciBkPXIobCkscD1kLm5leHQoKTshcC5kb25lO3A9ZC5uZXh0KCkpZm9yKHZhciB2PShFPXAudmFsdWUpLnBhcmVudDt2JiYhbC5oYXModik7KWwuYWRkKHYpLHY9di5wYXJlbnR9Y2F0Y2godCl7bj17ZXJyb3I6dH19ZmluYWxseXt0cnl7cCYmIXAuZG9uZSYmKGk9ZC5yZXR1cm4pJiZpLmNhbGwoZCl9ZmluYWxseXtpZihuKXRocm93IG4uZXJyb3J9fXZhciB5PXEobCk7dHJ5e2Zvcih2YXIgZz1yKGwpLG09Zy5uZXh0KCk7IW0uZG9uZTttPWcubmV4dCgpKXtpZihcImNvbXBvdW5kXCIhPT0oRT1tLnZhbHVlKS50eXBlfHx5LmdldChFKSYmeS5nZXQoRSkubGVuZ3RoKXtpZihcInBhcmFsbGVsXCI9PT1FLnR5cGUpdHJ5e2Zvcih2YXIgUz0ocz12b2lkIDAscihVKEUpKSkseD1TLm5leHQoKTsheC5kb25lO3g9Uy5uZXh0KCkpe3ZhciB3PXgudmFsdWU7XCJoaXN0b3J5XCIhPT13LnR5cGUmJihsLmhhcyh3KXx8KGwuYWRkKHcpLGYuZ2V0KHcpP2YuZ2V0KHcpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiBsLmFkZCh0KX0pKTp3LmluaXRpYWxTdGF0ZU5vZGVzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiBsLmFkZCh0KX0pKSkpfX1jYXRjaCh0KXtzPXtlcnJvcjp0fX1maW5hbGx5e3RyeXt4JiYheC5kb25lJiYoYz1TLnJldHVybikmJmMuY2FsbChTKX1maW5hbGx5e2lmKHMpdGhyb3cgcy5lcnJvcn19fWVsc2UgZi5nZXQoRSk/Zi5nZXQoRSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIGwuYWRkKHQpfSkpOkUuaW5pdGlhbFN0YXRlTm9kZXMuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIGwuYWRkKHQpfSkpfX1jYXRjaCh0KXtvPXtlcnJvcjp0fX1maW5hbGx5e3RyeXttJiYhbS5kb25lJiYoYT1nLnJldHVybikmJmEuY2FsbChnKX1maW5hbGx5e2lmKG8pdGhyb3cgby5lcnJvcn19dHJ5e2Zvcih2YXIgYj1yKGwpLF89Yi5uZXh0KCk7IV8uZG9uZTtfPWIubmV4dCgpKXt2YXIgRTtmb3Iodj0oRT1fLnZhbHVlKS5wYXJlbnQ7diYmIWwuaGFzKHYpOylsLmFkZCh2KSx2PXYucGFyZW50fX1jYXRjaCh0KXt1PXtlcnJvcjp0fX1maW5hbGx5e3RyeXtfJiYhXy5kb25lJiYoaD1iLnJldHVybikmJmguY2FsbChiKX1maW5hbGx5e2lmKHUpdGhyb3cgdS5lcnJvcn19cmV0dXJuIGx9ZnVuY3Rpb24gcSh0KXt2YXIgZSxuLGk9bmV3IE1hcDt0cnl7Zm9yKHZhciBvPXIodCksYT1vLm5leHQoKTshYS5kb25lO2E9by5uZXh0KCkpe3ZhciBzPWEudmFsdWU7aS5oYXMocyl8fGkuc2V0KHMsW10pLHMucGFyZW50JiYoaS5oYXMocy5wYXJlbnQpfHxpLnNldChzLnBhcmVudCxbXSksaS5nZXQocy5wYXJlbnQpLnB1c2gocykpfX1jYXRjaCh0KXtlPXtlcnJvcjp0fX1maW5hbGx5e3RyeXthJiYhYS5kb25lJiYobj1vLnJldHVybikmJm4uY2FsbChvKX1maW5hbGx5e2lmKGUpdGhyb3cgZS5lcnJvcn19cmV0dXJuIGl9ZnVuY3Rpb24gJCh0LGUpe3JldHVybiBmdW5jdGlvbiB0KGUsbil7dmFyIHI9bi5nZXQoZSk7aWYoIXIpcmV0dXJue307aWYoXCJjb21wb3VuZFwiPT09ZS50eXBlKXt2YXIgaT1yWzBdO2lmKCFpKXJldHVybnt9O2lmKEYoaSkpcmV0dXJuIGkua2V5fXZhciBvPXt9O3JldHVybiByLmZvckVhY2goKGZ1bmN0aW9uKGUpe29bZS5rZXldPXQoZSxuKX0pKSxvfSh0LHEoSihbdF0sZSkpKX1mdW5jdGlvbiBYKHQsZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/dC5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4gdD09PWV9KSk6dCBpbnN0YW5jZW9mIFNldCYmdC5oYXMoZSl9ZnVuY3Rpb24gSCh0LGUpe3JldHVyblwiY29tcG91bmRcIj09PWUudHlwZT9VKGUpLnNvbWUoKGZ1bmN0aW9uKGUpe3JldHVyblwiZmluYWxcIj09PWUudHlwZSYmWCh0LGUpfSkpOlwicGFyYWxsZWxcIj09PWUudHlwZSYmVShlKS5ldmVyeSgoZnVuY3Rpb24oZSl7cmV0dXJuIEgodCxlKX0pKX1mdW5jdGlvbiBHKHQpe3JldHVybiBuZXcgU2V0KGcodC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnRhZ3N9KSkpKX12YXIgSz10LkFjdGlvblR5cGVzLlN0YXJ0LFE9dC5BY3Rpb25UeXBlcy5TdG9wLFc9dC5BY3Rpb25UeXBlcy5SYWlzZSxZPXQuQWN0aW9uVHlwZXMuU2VuZCxaPXQuQWN0aW9uVHlwZXMuQ2FuY2VsLHR0PXQuQWN0aW9uVHlwZXMuTnVsbEV2ZW50LGV0PXQuQWN0aW9uVHlwZXMuQXNzaWduLG50PSh0LkFjdGlvblR5cGVzLkFmdGVyLHQuQWN0aW9uVHlwZXMuRG9uZVN0YXRlLHQuQWN0aW9uVHlwZXMuTG9nKSxydD10LkFjdGlvblR5cGVzLkluaXQsaXQ9dC5BY3Rpb25UeXBlcy5JbnZva2Usb3Q9KHQuQWN0aW9uVHlwZXMuRXJyb3JFeGVjdXRpb24sdC5BY3Rpb25UeXBlcy5FcnJvclBsYXRmb3JtKSxhdD10LkFjdGlvblR5cGVzLkVycm9yQ3VzdG9tLHN0PXQuQWN0aW9uVHlwZXMuVXBkYXRlLGN0PXQuQWN0aW9uVHlwZXMuQ2hvb3NlLHV0PXQuQWN0aW9uVHlwZXMuUHVyZSxodD1MKHt0eXBlOnJ0fSk7ZnVuY3Rpb24gZnQodCxlKXtyZXR1cm4gZSYmZVt0XXx8dm9pZCAwfWZ1bmN0aW9uIGx0KHQsbil7dmFyIHI7aWYoQSh0KXx8XCJudW1iZXJcIj09dHlwZW9mIHQpcj1OKGk9ZnQodCxuKSk/e3R5cGU6dCxleGVjOml9Oml8fHt0eXBlOnQsZXhlYzp2b2lkIDB9O2Vsc2UgaWYoTih0KSlyPXt0eXBlOnQubmFtZXx8dC50b1N0cmluZygpLGV4ZWM6dH07ZWxzZXt2YXIgaTtpZihOKGk9ZnQodC50eXBlLG4pKSlyPWUoZSh7fSx0KSx7ZXhlYzppfSk7ZWxzZSBpZihpKXt2YXIgbz1pLnR5cGV8fHQudHlwZTtyPWUoZShlKHt9LGkpLHQpLHt0eXBlOm99KX1lbHNlIHI9dH1yZXR1cm4gcn12YXIgZHQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD8oVCh0KT90Olt0XSkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gbHQodCxlKX0pKTpbXX07ZnVuY3Rpb24gcHQodCl7dmFyIG49bHQodCk7cmV0dXJuIGUoZSh7aWQ6QSh0KT90Om4uaWR9LG4pLHt0eXBlOm4udHlwZX0pfWZ1bmN0aW9uIHZ0KGUpe3JldHVybiBBKGUpP3t0eXBlOlcsZXZlbnQ6ZX06eXQoZSx7dG86dC5TcGVjaWFsVGFyZ2V0cy5JbnRlcm5hbH0pfWZ1bmN0aW9uIHl0KHQsZSl7cmV0dXJue3RvOmU/ZS50bzp2b2lkIDAsdHlwZTpZLGV2ZW50Ok4odCk/dDpWKHQpLGRlbGF5OmU/ZS5kZWxheTp2b2lkIDAsaWQ6ZSYmdm9pZCAwIT09ZS5pZD9lLmlkOk4odCk/dC5uYW1lOnUodCl9fWZ1bmN0aW9uIGd0KG4scil7cmV0dXJuIHl0KG4sZShlKHt9LHIpLHt0bzp0LlNwZWNpYWxUYXJnZXRzLlBhcmVudH0pKX1mdW5jdGlvbiBtdCgpe3JldHVybiBndChzdCl9dmFyIFN0PWZ1bmN0aW9uKHQsZSl7cmV0dXJue2NvbnRleHQ6dCxldmVudDplfX07dmFyIHh0PWZ1bmN0aW9uKHQpe3JldHVybnt0eXBlOlosc2VuZElkOnR9fTtmdW5jdGlvbiB3dChlKXt2YXIgbj1wdChlKTtyZXR1cm57dHlwZTp0LkFjdGlvblR5cGVzLlN0YXJ0LGFjdGl2aXR5Om4sZXhlYzp2b2lkIDB9fWZ1bmN0aW9uIGJ0KGUpe3ZhciBuPU4oZSk/ZTpwdChlKTtyZXR1cm57dHlwZTp0LkFjdGlvblR5cGVzLlN0b3AsYWN0aXZpdHk6bixleGVjOnZvaWQgMH19dmFyIF90PWZ1bmN0aW9uKHQpe3JldHVybnt0eXBlOmV0LGFzc2lnbm1lbnQ6dH19O2Z1bmN0aW9uIEV0KGUsbil7dmFyIHI9bj9cIiNcIi5jb25jYXQobik6XCJcIjtyZXR1cm5cIlwiLmNvbmNhdCh0LkFjdGlvblR5cGVzLkFmdGVyLFwiKFwiKS5jb25jYXQoZSxcIilcIikuY29uY2F0KHIpfWZ1bmN0aW9uIFR0KGUsbil7dmFyIHI9XCJcIi5jb25jYXQodC5BY3Rpb25UeXBlcy5Eb25lU3RhdGUsXCIuXCIpLmNvbmNhdChlKSxpPXt0eXBlOnIsZGF0YTpuLHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIHJ9fTtyZXR1cm4gaX1mdW5jdGlvbiBOdChlLG4pe3ZhciByPVwiXCIuY29uY2F0KHQuQWN0aW9uVHlwZXMuRG9uZUludm9rZSxcIi5cIikuY29uY2F0KGUpLGk9e3R5cGU6cixkYXRhOm4sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gcn19O3JldHVybiBpfWZ1bmN0aW9uIEF0KGUsbil7dmFyIHI9XCJcIi5jb25jYXQodC5BY3Rpb25UeXBlcy5FcnJvclBsYXRmb3JtLFwiLlwiKS5jb25jYXQoZSksaT17dHlwZTpyLGRhdGE6bix0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiByfX07cmV0dXJuIGl9ZnVuY3Rpb24gT3QodCxuKXtyZXR1cm4geXQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV9KSxlKGUoe30sbikse3RvOnR9KSl9ZnVuY3Rpb24gUHQobixyLGEscyxjLHUpe3ZvaWQgMD09PXUmJih1PSExKTt2YXIgaD1pKHU/W1tdLGNdOmIoYywoZnVuY3Rpb24odCl7cmV0dXJuIHQudHlwZT09PWV0fSkpLDIpLGY9aFswXSxsPWhbMV0sZD1mLmxlbmd0aD9FKGEscyxmLHIpOmEscD11P1thXTp2b2lkIDA7cmV0dXJuW2cobC5tYXAoKGZ1bmN0aW9uKGEpe3ZhciBjO3N3aXRjaChhLnR5cGUpe2Nhc2UgVzpyZXR1cm57dHlwZTpXLF9ldmVudDpMKGEuZXZlbnQpfTtjYXNlIFk6cmV0dXJuIGZ1bmN0aW9uKHQsbixyLGkpe3ZhciBvLGE9e19ldmVudDpyfSxzPUwoTih0LmV2ZW50KT90LmV2ZW50KG4sci5kYXRhLGEpOnQuZXZlbnQpO2lmKEEodC5kZWxheSkpe3ZhciBjPWkmJmlbdC5kZWxheV07bz1OKGMpP2MobixyLmRhdGEsYSk6Y31lbHNlIG89Tih0LmRlbGF5KT90LmRlbGF5KG4sci5kYXRhLGEpOnQuZGVsYXk7dmFyIHU9Tih0LnRvKT90LnRvKG4sci5kYXRhLGEpOnQudG87cmV0dXJuIGUoZSh7fSx0KSx7dG86dSxfZXZlbnQ6cyxldmVudDpzLmRhdGEsZGVsYXk6b30pfShhLGQscyxuLm9wdGlvbnMuZGVsYXlzKTtjYXNlIG50OnJldHVybiBmdW5jdGlvbih0LG4scil7cmV0dXJuIGUoZSh7fSx0KSx7dmFsdWU6QSh0LmV4cHIpP3QuZXhwcjp0LmV4cHIobixyLmRhdGEse19ldmVudDpyfSl9KX0oYSxkLHMpO2Nhc2UgY3Q6aWYoISh2PW51bGw9PT0oYz1hLmNvbmRzLmZpbmQoKGZ1bmN0aW9uKHQpe3ZhciBlPU8odC5jb25kLG4ub3B0aW9ucy5ndWFyZHMpO3JldHVybiFlfHxSKG4sZSxkLHMscil9KSkpfHx2b2lkIDA9PT1jP3ZvaWQgMDpjLmFjdGlvbnMpKXJldHVybltdO3ZhciBoPWkoUHQobixyLGQscyxkdChTKHYpLG4ub3B0aW9ucy5hY3Rpb25zKSx1KSwyKSxmPWhbMF0sbD1oWzFdO3JldHVybiBkPWwsbnVsbD09cHx8cC5wdXNoKGQpLGY7Y2FzZSB1dDp2YXIgdjtpZighKHY9YS5nZXQoZCxzLmRhdGEpKSlyZXR1cm5bXTt2YXIgeT1pKFB0KG4scixkLHMsZHQoUyh2KSxuLm9wdGlvbnMuYWN0aW9ucyksdSksMiksZz15WzBdLG09eVsxXTtyZXR1cm4gZD1tLG51bGw9PXB8fHAucHVzaChkKSxnO2Nhc2UgUTpyZXR1cm4gZnVuY3Rpb24oZSxuLHIpe3ZhciBpPU4oZS5hY3Rpdml0eSk/ZS5hY3Rpdml0eShuLHIuZGF0YSk6ZS5hY3Rpdml0eSxvPVwic3RyaW5nXCI9PXR5cGVvZiBpP3tpZDppfTppO3JldHVybnt0eXBlOnQuQWN0aW9uVHlwZXMuU3RvcCxhY3Rpdml0eTpvfX0oYSxkLHMpO2Nhc2UgZXQ6ZD1FKGQscyxbYV0sciksbnVsbD09cHx8cC5wdXNoKGQpO2JyZWFrO2RlZmF1bHQ6dmFyIHg9bHQoYSxuLm9wdGlvbnMuYWN0aW9ucyksdz14LmV4ZWM7aWYodyYmcCl7dmFyIGI9cC5sZW5ndGgtMTt4PWUoZSh7fSx4KSx7ZXhlYzpmdW5jdGlvbih0KXtmb3IodmFyIGU9W10sbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspZVtuLTFdPWFyZ3VtZW50c1tuXTt3LmFwcGx5KHZvaWQgMCxvKFtwW2JdXSxpKGUpLCExKSl9fSl9cmV0dXJuIHh9fSkpLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuISF0fSkpKSxkXX12YXIga3Q9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3ZhciBlLG4scj10aGlzO3RoaXMuYWN0aW9ucz1bXSx0aGlzLmFjdGl2aXRpZXM9YSx0aGlzLm1ldGE9e30sdGhpcy5ldmVudHM9W10sdGhpcy52YWx1ZT10LnZhbHVlLHRoaXMuY29udGV4dD10LmNvbnRleHQsdGhpcy5fZXZlbnQ9dC5fZXZlbnQsdGhpcy5fc2Vzc2lvbmlkPXQuX3Nlc3Npb25pZCx0aGlzLmV2ZW50PXRoaXMuX2V2ZW50LmRhdGEsdGhpcy5oaXN0b3J5VmFsdWU9dC5oaXN0b3J5VmFsdWUsdGhpcy5oaXN0b3J5PXQuaGlzdG9yeSx0aGlzLmFjdGlvbnM9dC5hY3Rpb25zfHxbXSx0aGlzLmFjdGl2aXRpZXM9dC5hY3Rpdml0aWVzfHxhLHRoaXMubWV0YT0odm9pZCAwPT09KG49dC5jb25maWd1cmF0aW9uKSYmKG49W10pLG4ucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDAhPT1lLm1ldGEmJih0W2UuaWRdPWUubWV0YSksdH0pLHt9KSksdGhpcy5ldmVudHM9dC5ldmVudHN8fFtdLHRoaXMubWF0Y2hlcz10aGlzLm1hdGNoZXMuYmluZCh0aGlzKSx0aGlzLnRvU3RyaW5ncz10aGlzLnRvU3RyaW5ncy5iaW5kKHRoaXMpLHRoaXMuY29uZmlndXJhdGlvbj10LmNvbmZpZ3VyYXRpb24sdGhpcy50cmFuc2l0aW9ucz10LnRyYW5zaXRpb25zLHRoaXMuY2hpbGRyZW49dC5jaGlsZHJlbix0aGlzLmRvbmU9ISF0LmRvbmUsdGhpcy50YWdzPW51bGwhPT0oZT1BcnJheS5pc0FycmF5KHQudGFncyk/bmV3IFNldCh0LnRhZ3MpOnQudGFncykmJnZvaWQgMCE9PWU/ZTpuZXcgU2V0LHRoaXMubWFjaGluZT10Lm1hY2hpbmUsT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJuZXh0RXZlbnRzXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gbyhbXSxpKG5ldyBTZXQoZyhvKFtdLGkodC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm93bkV2ZW50c30pKSksITEpKSkpLCExKX0oci5jb25maWd1cmF0aW9uKX19KX1yZXR1cm4gdC5mcm9tPWZ1bmN0aW9uKGUsbil7cmV0dXJuIGUgaW5zdGFuY2VvZiB0P2UuY29udGV4dCE9PW4/bmV3IHQoe3ZhbHVlOmUudmFsdWUsY29udGV4dDpuLF9ldmVudDplLl9ldmVudCxfc2Vzc2lvbmlkOm51bGwsaGlzdG9yeVZhbHVlOmUuaGlzdG9yeVZhbHVlLGhpc3Rvcnk6ZS5oaXN0b3J5LGFjdGlvbnM6W10sYWN0aXZpdGllczplLmFjdGl2aXRpZXMsbWV0YTp7fSxldmVudHM6W10sY29uZmlndXJhdGlvbjpbXSx0cmFuc2l0aW9uczpbXSxjaGlsZHJlbjp7fX0pOmU6bmV3IHQoe3ZhbHVlOmUsY29udGV4dDpuLF9ldmVudDpodCxfc2Vzc2lvbmlkOm51bGwsaGlzdG9yeVZhbHVlOnZvaWQgMCxoaXN0b3J5OnZvaWQgMCxhY3Rpb25zOltdLGFjdGl2aXRpZXM6dm9pZCAwLG1ldGE6dm9pZCAwLGV2ZW50czpbXSxjb25maWd1cmF0aW9uOltdLHRyYW5zaXRpb25zOltdLGNoaWxkcmVuOnt9fSl9LHQuY3JlYXRlPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgdChlKX0sdC5pbmVydD1mdW5jdGlvbihlLG4pe2lmKGUgaW5zdGFuY2VvZiB0KXtpZighZS5hY3Rpb25zLmxlbmd0aClyZXR1cm4gZTt2YXIgcj1odDtyZXR1cm4gbmV3IHQoe3ZhbHVlOmUudmFsdWUsY29udGV4dDpuLF9ldmVudDpyLF9zZXNzaW9uaWQ6bnVsbCxoaXN0b3J5VmFsdWU6ZS5oaXN0b3J5VmFsdWUsaGlzdG9yeTplLmhpc3RvcnksYWN0aXZpdGllczplLmFjdGl2aXRpZXMsY29uZmlndXJhdGlvbjplLmNvbmZpZ3VyYXRpb24sdHJhbnNpdGlvbnM6W10sY2hpbGRyZW46e319KX1yZXR1cm4gdC5mcm9tKGUsbil9LHQucHJvdG90eXBlLnRvU3RyaW5ncz1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7aWYodm9pZCAwPT09dCYmKHQ9dGhpcy52YWx1ZSksdm9pZCAwPT09ZSYmKGU9XCIuXCIpLEEodCkpcmV0dXJuW3RdO3ZhciByPXModCk7cmV0dXJuIHIuY29uY2F0LmFwcGx5KHIsbyhbXSxpKHIubWFwKChmdW5jdGlvbihyKXtyZXR1cm4gbi50b1N0cmluZ3ModFtyXSxlKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiByK2UrdH0pKX0pKSksITEpKX0sdC5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxyPSh0LmNvbmZpZ3VyYXRpb24sdC50cmFuc2l0aW9ucyx0LnRhZ3MpLGk9KHQubWFjaGluZSxuKHQsW1wiY29uZmlndXJhdGlvblwiLFwidHJhbnNpdGlvbnNcIixcInRhZ3NcIixcIm1hY2hpbmVcIl0pKTtyZXR1cm4gZShlKHt9LGkpLHt0YWdzOkFycmF5LmZyb20ocil9KX0sdC5wcm90b3R5cGUubWF0Y2hlcz1mdW5jdGlvbih0KXtyZXR1cm4gYyh0LHRoaXMudmFsdWUpfSx0LnByb3RvdHlwZS5oYXNUYWc9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMudGFncy5oYXModCl9LHQucHJvdG90eXBlLmNhbj1mdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4gdGhpcy5tYWNoaW5lLCEhKG51bGw9PT0oZT10aGlzLm1hY2hpbmUpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLnRyYW5zaXRpb24odGhpcyx0KS5jaGFuZ2VkKX0sdH0oKSxJdD1bXSxqdD1mdW5jdGlvbih0LGUpe0l0LnB1c2godCk7dmFyIG49ZSh0KTtyZXR1cm4gSXQucG9wKCksbn07ZnVuY3Rpb24gQ3QodCl7cmV0dXJue2lkOnQsc2VuZDpmdW5jdGlvbigpe30sc3Vic2NyaWJlOmZ1bmN0aW9uKCl7cmV0dXJue3Vuc3Vic2NyaWJlOmZ1bmN0aW9uKCl7fX19LGdldFNuYXBzaG90OmZ1bmN0aW9uKCl7fSx0b0pTT046ZnVuY3Rpb24oKXtyZXR1cm57aWQ6dH19fX1mdW5jdGlvbiBWdCh0LGUsbil7dmFyIHI9Q3QoZSk7aWYoci5kZWZlcnJlZD0hMCxrKHQpKXt2YXIgaT1yLnN0YXRlPWp0KHZvaWQgMCwoZnVuY3Rpb24oKXtyZXR1cm4obj90LndpdGhDb250ZXh0KG4pOnQpLmluaXRpYWxTdGF0ZX0pKTtyLmdldFNuYXBzaG90PWZ1bmN0aW9uKCl7cmV0dXJuIGl9fXJldHVybiByfWZ1bmN0aW9uIEx0KHQpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiB0KXt2YXIgZT17dHlwZTp0LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIHR9fTtyZXR1cm4gZX1yZXR1cm4gdH1mdW5jdGlvbiBEdCh0KXtyZXR1cm4gZShlKHt0eXBlOml0fSx0KSx7dG9KU09OOmZ1bmN0aW9uKCl7dC5vbkRvbmUsdC5vbkVycm9yO3ZhciByPW4odCxbXCJvbkRvbmVcIixcIm9uRXJyb3JcIl0pO3JldHVybiBlKGUoe30scikse3R5cGU6aXQsc3JjOkx0KHQuc3JjKX0pfX0pfXZhciBSdD17fSxNdD1mdW5jdGlvbih0KXtyZXR1cm5cIiNcIj09PXRbMF19LHp0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSh0LG4sYyl7dmFyIHUsaD10aGlzO3ZvaWQgMD09PWMmJihjPVwiY29udGV4dFwiaW4gdD90LmNvbnRleHQ6dm9pZCAwKSx0aGlzLmNvbmZpZz10LHRoaXMuX2NvbnRleHQ9Yyx0aGlzLm9yZGVyPS0xLHRoaXMuX194c3RhdGVub2RlPSEwLHRoaXMuX19jYWNoZT17ZXZlbnRzOnZvaWQgMCxyZWxhdGl2ZVZhbHVlOm5ldyBNYXAsaW5pdGlhbFN0YXRlVmFsdWU6dm9pZCAwLGluaXRpYWxTdGF0ZTp2b2lkIDAsb246dm9pZCAwLHRyYW5zaXRpb25zOnZvaWQgMCxjYW5kaWRhdGVzOnt9LGRlbGF5ZWRUcmFuc2l0aW9uczp2b2lkIDB9LHRoaXMuaWRNYXA9e30sdGhpcy50YWdzPVtdLHRoaXMub3B0aW9ucz1PYmplY3QuYXNzaWduKHthY3Rpb25zOnt9LGd1YXJkczp7fSxzZXJ2aWNlczp7fSxhY3Rpdml0aWVzOnt9LGRlbGF5czp7fX0sbiksdGhpcy5wYXJlbnQ9dGhpcy5vcHRpb25zLl9wYXJlbnQsdGhpcy5rZXk9dGhpcy5jb25maWcua2V5fHx0aGlzLm9wdGlvbnMuX2tleXx8dGhpcy5jb25maWcuaWR8fFwiKG1hY2hpbmUpXCIsdGhpcy5tYWNoaW5lPXRoaXMucGFyZW50P3RoaXMucGFyZW50Lm1hY2hpbmU6dGhpcyx0aGlzLnBhdGg9dGhpcy5wYXJlbnQ/dGhpcy5wYXJlbnQucGF0aC5jb25jYXQodGhpcy5rZXkpOltdLHRoaXMuZGVsaW1pdGVyPXRoaXMuY29uZmlnLmRlbGltaXRlcnx8KHRoaXMucGFyZW50P3RoaXMucGFyZW50LmRlbGltaXRlcjpcIi5cIiksdGhpcy5pZD10aGlzLmNvbmZpZy5pZHx8byhbdGhpcy5tYWNoaW5lLmtleV0saSh0aGlzLnBhdGgpLCExKS5qb2luKHRoaXMuZGVsaW1pdGVyKSx0aGlzLnZlcnNpb249dGhpcy5wYXJlbnQ/dGhpcy5wYXJlbnQudmVyc2lvbjp0aGlzLmNvbmZpZy52ZXJzaW9uLHRoaXMudHlwZT10aGlzLmNvbmZpZy50eXBlfHwodGhpcy5jb25maWcucGFyYWxsZWw/XCJwYXJhbGxlbFwiOnRoaXMuY29uZmlnLnN0YXRlcyYmcyh0aGlzLmNvbmZpZy5zdGF0ZXMpLmxlbmd0aD9cImNvbXBvdW5kXCI6dGhpcy5jb25maWcuaGlzdG9yeT9cImhpc3RvcnlcIjpcImF0b21pY1wiKSx0aGlzLnNjaGVtYT10aGlzLnBhcmVudD90aGlzLm1hY2hpbmUuc2NoZW1hOm51bGwhPT0odT10aGlzLmNvbmZpZy5zY2hlbWEpJiZ2b2lkIDAhPT11P3U6e30sdGhpcy5kZXNjcmlwdGlvbj10aGlzLmNvbmZpZy5kZXNjcmlwdGlvbix0aGlzLmluaXRpYWw9dGhpcy5jb25maWcuaW5pdGlhbCx0aGlzLnN0YXRlcz10aGlzLmNvbmZpZy5zdGF0ZXM/ZCh0aGlzLmNvbmZpZy5zdGF0ZXMsKGZ1bmN0aW9uKHQsbil7dmFyIHIsaT1uZXcgYSh0LHtfcGFyZW50OmgsX2tleTpufSk7cmV0dXJuIE9iamVjdC5hc3NpZ24oaC5pZE1hcCxlKCgocj17fSlbaS5pZF09aSxyKSxpLmlkTWFwKSksaX0pKTpSdDt2YXIgZj0wOyFmdW5jdGlvbiB0KGUpe3ZhciBuLGk7ZS5vcmRlcj1mKys7dHJ5e2Zvcih2YXIgbz1yKFUoZSkpLGE9by5uZXh0KCk7IWEuZG9uZTthPW8ubmV4dCgpKXt0KGEudmFsdWUpfX1jYXRjaCh0KXtuPXtlcnJvcjp0fX1maW5hbGx5e3RyeXthJiYhYS5kb25lJiYoaT1vLnJldHVybikmJmkuY2FsbChvKX1maW5hbGx5e2lmKG4pdGhyb3cgbi5lcnJvcn19fSh0aGlzKSx0aGlzLmhpc3Rvcnk9ITA9PT10aGlzLmNvbmZpZy5oaXN0b3J5P1wic2hhbGxvd1wiOnRoaXMuY29uZmlnLmhpc3Rvcnl8fCExLHRoaXMuX3RyYW5zaWVudD0hIXRoaXMuY29uZmlnLmFsd2F5c3x8ISF0aGlzLmNvbmZpZy5vbiYmKEFycmF5LmlzQXJyYXkodGhpcy5jb25maWcub24pP3RoaXMuY29uZmlnLm9uLnNvbWUoKGZ1bmN0aW9uKHQpe3JldHVyblwiXCI9PT10LmV2ZW50fSkpOlwiXCJpbiB0aGlzLmNvbmZpZy5vbiksdGhpcy5zdHJpY3Q9ISF0aGlzLmNvbmZpZy5zdHJpY3QsdGhpcy5vbkVudHJ5PVModGhpcy5jb25maWcuZW50cnl8fHRoaXMuY29uZmlnLm9uRW50cnkpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGx0KHQpfSkpLHRoaXMub25FeGl0PVModGhpcy5jb25maWcuZXhpdHx8dGhpcy5jb25maWcub25FeGl0KS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBsdCh0KX0pKSx0aGlzLm1ldGE9dGhpcy5jb25maWcubWV0YSx0aGlzLmRvbmVEYXRhPVwiZmluYWxcIj09PXRoaXMudHlwZT90aGlzLmNvbmZpZy5kYXRhOnZvaWQgMCx0aGlzLmludm9rZT1TKHRoaXMuY29uZmlnLmludm9rZSkubWFwKChmdW5jdGlvbih0LG4pe3ZhciByLGk7aWYoayh0KSlyZXR1cm4gaC5tYWNoaW5lLm9wdGlvbnMuc2VydmljZXM9ZSgoKHI9e30pW3QuaWRdPXQsciksaC5tYWNoaW5lLm9wdGlvbnMuc2VydmljZXMpLER0KHtzcmM6dC5pZCxpZDp0LmlkfSk7aWYoQSh0LnNyYykpcmV0dXJuIER0KGUoZSh7fSx0KSx7aWQ6dC5pZHx8dC5zcmMsc3JjOnQuc3JjfSkpO2lmKGsodC5zcmMpfHxOKHQuc3JjKSl7dmFyIG89XCJcIi5jb25jYXQoaC5pZCxcIjppbnZvY2F0aW9uW1wiKS5jb25jYXQobixcIl1cIik7cmV0dXJuIGgubWFjaGluZS5vcHRpb25zLnNlcnZpY2VzPWUoKChpPXt9KVtvXT10LnNyYyxpKSxoLm1hY2hpbmUub3B0aW9ucy5zZXJ2aWNlcyksRHQoZShlKHtpZDpvfSx0KSx7c3JjOm99KSl9dmFyIGE9dC5zcmM7cmV0dXJuIER0KGUoZSh7aWQ6YS50eXBlfSx0KSx7c3JjOmF9KSl9KSksdGhpcy5hY3Rpdml0aWVzPVModGhpcy5jb25maWcuYWN0aXZpdGllcykuY29uY2F0KHRoaXMuaW52b2tlKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBwdCh0KX0pKSx0aGlzLnRyYW5zaXRpb249dGhpcy50cmFuc2l0aW9uLmJpbmQodGhpcyksdGhpcy50YWdzPVModGhpcy5jb25maWcudGFncyl9cmV0dXJuIGEucHJvdG90eXBlLl9pbml0PWZ1bmN0aW9uKCl7dGhpcy5fX2NhY2hlLnRyYW5zaXRpb25zfHxCKHRoaXMpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm9ufSkpfSxhLnByb3RvdHlwZS53aXRoQ29uZmlnPWZ1bmN0aW9uKHQsbil7dmFyIHI9dGhpcy5vcHRpb25zLGk9ci5hY3Rpb25zLG89ci5hY3Rpdml0aWVzLHM9ci5ndWFyZHMsYz1yLnNlcnZpY2VzLHU9ci5kZWxheXM7cmV0dXJuIG5ldyBhKHRoaXMuY29uZmlnLHthY3Rpb25zOmUoZSh7fSxpKSx0LmFjdGlvbnMpLGFjdGl2aXRpZXM6ZShlKHt9LG8pLHQuYWN0aXZpdGllcyksZ3VhcmRzOmUoZSh7fSxzKSx0Lmd1YXJkcyksc2VydmljZXM6ZShlKHt9LGMpLHQuc2VydmljZXMpLGRlbGF5czplKGUoe30sdSksdC5kZWxheXMpfSxudWxsIT1uP246dGhpcy5jb250ZXh0KX0sYS5wcm90b3R5cGUud2l0aENvbnRleHQ9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBhKHRoaXMuY29uZmlnLHRoaXMub3B0aW9ucyx0KX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGEucHJvdG90eXBlLFwiY29udGV4dFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTih0aGlzLl9jb250ZXh0KT90aGlzLl9jb250ZXh0KCk6dGhpcy5fY29udGV4dH0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYS5wcm90b3R5cGUsXCJkZWZpbml0aW9uXCIse2dldDpmdW5jdGlvbigpe3JldHVybntpZDp0aGlzLmlkLGtleTp0aGlzLmtleSx2ZXJzaW9uOnRoaXMudmVyc2lvbixjb250ZXh0OnRoaXMuY29udGV4dCx0eXBlOnRoaXMudHlwZSxpbml0aWFsOnRoaXMuaW5pdGlhbCxoaXN0b3J5OnRoaXMuaGlzdG9yeSxzdGF0ZXM6ZCh0aGlzLnN0YXRlcywoZnVuY3Rpb24odCl7cmV0dXJuIHQuZGVmaW5pdGlvbn0pKSxvbjp0aGlzLm9uLHRyYW5zaXRpb25zOnRoaXMudHJhbnNpdGlvbnMsZW50cnk6dGhpcy5vbkVudHJ5LGV4aXQ6dGhpcy5vbkV4aXQsYWN0aXZpdGllczp0aGlzLmFjdGl2aXRpZXN8fFtdLG1ldGE6dGhpcy5tZXRhLG9yZGVyOnRoaXMub3JkZXJ8fC0xLGRhdGE6dGhpcy5kb25lRGF0YSxpbnZva2U6dGhpcy5pbnZva2UsZGVzY3JpcHRpb246dGhpcy5kZXNjcmlwdGlvbix0YWdzOnRoaXMudGFnc319LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksYS5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGVmaW5pdGlvbn0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGEucHJvdG90eXBlLFwib25cIix7Z2V0OmZ1bmN0aW9uKCl7aWYodGhpcy5fX2NhY2hlLm9uKXJldHVybiB0aGlzLl9fY2FjaGUub247dmFyIHQ9dGhpcy50cmFuc2l0aW9ucztyZXR1cm4gdGhpcy5fX2NhY2hlLm9uPXQucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiB0W2UuZXZlbnRUeXBlXT10W2UuZXZlbnRUeXBlXXx8W10sdFtlLmV2ZW50VHlwZV0ucHVzaChlKSx0fSkse30pfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLnByb3RvdHlwZSxcImFmdGVyXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9fY2FjaGUuZGVsYXllZFRyYW5zaXRpb25zfHwodGhpcy5fX2NhY2hlLmRlbGF5ZWRUcmFuc2l0aW9ucz10aGlzLmdldERlbGF5ZWRUcmFuc2l0aW9ucygpLHRoaXMuX19jYWNoZS5kZWxheWVkVHJhbnNpdGlvbnMpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLnByb3RvdHlwZSxcInRyYW5zaXRpb25zXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9fY2FjaGUudHJhbnNpdGlvbnN8fCh0aGlzLl9fY2FjaGUudHJhbnNpdGlvbnM9dGhpcy5mb3JtYXRUcmFuc2l0aW9ucygpLHRoaXMuX19jYWNoZS50cmFuc2l0aW9ucyl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksYS5wcm90b3R5cGUuZ2V0Q2FuZGlkYXRlcz1mdW5jdGlvbih0KXtpZih0aGlzLl9fY2FjaGUuY2FuZGlkYXRlc1t0XSlyZXR1cm4gdGhpcy5fX2NhY2hlLmNhbmRpZGF0ZXNbdF07dmFyIGU9XCJcIj09PXQsbj10aGlzLnRyYW5zaXRpb25zLmZpbHRlcigoZnVuY3Rpb24obil7dmFyIHI9bi5ldmVudFR5cGU9PT10O3JldHVybiBlP3I6cnx8XCIqXCI9PT1uLmV2ZW50VHlwZX0pKTtyZXR1cm4gdGhpcy5fX2NhY2hlLmNhbmRpZGF0ZXNbdF09bixufSxhLnByb3RvdHlwZS5nZXREZWxheWVkVHJhbnNpdGlvbnM9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLG49dGhpcy5jb25maWcuYWZ0ZXI7aWYoIW4pcmV0dXJuW107dmFyIHI9ZnVuY3Rpb24oZSxuKXt2YXIgcj1FdChOKGUpP1wiXCIuY29uY2F0KHQuaWQsXCI6ZGVsYXlbXCIpLmNvbmNhdChuLFwiXVwiKTplLHQuaWQpO3JldHVybiB0Lm9uRW50cnkucHVzaCh5dChyLHtkZWxheTplfSkpLHQub25FeGl0LnB1c2goeHQocikpLHJ9O3JldHVybihUKG4pP24ubWFwKChmdW5jdGlvbih0LG4pe3ZhciBpPXIodC5kZWxheSxuKTtyZXR1cm4gZShlKHt9LHQpLHtldmVudDppfSl9KSk6ZyhzKG4pLm1hcCgoZnVuY3Rpb24odCxpKXt2YXIgbz1uW3RdLGE9QShvKT97dGFyZ2V0Om99Om8scz1pc05hTigrdCk/dDordCxjPXIocyxpKTtyZXR1cm4gUyhhKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBlKGUoe30sdCkse2V2ZW50OmMsZGVsYXk6c30pfSkpfSkpKSkubWFwKChmdW5jdGlvbihuKXt2YXIgcj1uLmRlbGF5O3JldHVybiBlKGUoe30sdC5mb3JtYXRUcmFuc2l0aW9uKG4pKSx7ZGVsYXk6cn0pfSkpfSxhLnByb3RvdHlwZS5nZXRTdGF0ZU5vZGVzPWZ1bmN0aW9uKHQpe3ZhciBlLG49dGhpcztpZighdClyZXR1cm5bXTt2YXIgcj10IGluc3RhbmNlb2Yga3Q/dC52YWx1ZTpmKHQsdGhpcy5kZWxpbWl0ZXIpO2lmKEEocikpe3ZhciBpPXRoaXMuZ2V0U3RhdGVOb2RlKHIpLmluaXRpYWw7cmV0dXJuIHZvaWQgMCE9PWk/dGhpcy5nZXRTdGF0ZU5vZGVzKCgoZT17fSlbcl09aSxlKSk6W3RoaXMsdGhpcy5zdGF0ZXNbcl1dfXZhciBvPXMociksYT1vLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIG4uZ2V0U3RhdGVOb2RlKHQpfSkpO3JldHVybiBhLnB1c2godGhpcyksYS5jb25jYXQoby5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7dmFyIGk9bi5nZXRTdGF0ZU5vZGUoZSkuZ2V0U3RhdGVOb2RlcyhyW2VdKTtyZXR1cm4gdC5jb25jYXQoaSl9KSxbXSkpfSxhLnByb3RvdHlwZS5oYW5kbGVzPWZ1bmN0aW9uKHQpe3ZhciBlPXUodCk7cmV0dXJuIHRoaXMuZXZlbnRzLmluY2x1ZGVzKGUpfSxhLnByb3RvdHlwZS5yZXNvbHZlU3RhdGU9ZnVuY3Rpb24odCl7dmFyIG49QXJyYXkuZnJvbShKKFtdLHRoaXMuZ2V0U3RhdGVOb2Rlcyh0LnZhbHVlKSkpO3JldHVybiBuZXcga3QoZShlKHt9LHQpLHt2YWx1ZTp0aGlzLnJlc29sdmUodC52YWx1ZSksY29uZmlndXJhdGlvbjpuLGRvbmU6SChuLHRoaXMpLHRhZ3M6RyhuKX0pKX0sYS5wcm90b3R5cGUudHJhbnNpdGlvbkxlYWZOb2RlPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10aGlzLmdldFN0YXRlTm9kZSh0KS5uZXh0KGUsbik7cmV0dXJuIHImJnIudHJhbnNpdGlvbnMubGVuZ3RoP3I6dGhpcy5uZXh0KGUsbil9LGEucHJvdG90eXBlLnRyYW5zaXRpb25Db21wb3VuZE5vZGU9ZnVuY3Rpb24odCxlLG4pe3ZhciByPXModCksaT10aGlzLmdldFN0YXRlTm9kZShyWzBdKS5fdHJhbnNpdGlvbih0W3JbMF1dLGUsbik7cmV0dXJuIGkmJmkudHJhbnNpdGlvbnMubGVuZ3RoP2k6dGhpcy5uZXh0KGUsbil9LGEucHJvdG90eXBlLnRyYW5zaXRpb25QYXJhbGxlbE5vZGU9ZnVuY3Rpb24odCxlLG4pe3ZhciBpLG8sYT17fTt0cnl7Zm9yKHZhciBjPXIocyh0KSksdT1jLm5leHQoKTshdS5kb25lO3U9Yy5uZXh0KCkpe3ZhciBoPXUudmFsdWUsZj10W2hdO2lmKGYpe3ZhciBsPXRoaXMuZ2V0U3RhdGVOb2RlKGgpLl90cmFuc2l0aW9uKGYsZSxuKTtsJiYoYVtoXT1sKX19fWNhdGNoKHQpe2k9e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e3UmJiF1LmRvbmUmJihvPWMucmV0dXJuKSYmby5jYWxsKGMpfWZpbmFsbHl7aWYoaSl0aHJvdyBpLmVycm9yfX12YXIgZD1zKGEpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGFbdF19KSkscD1nKGQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC50cmFuc2l0aW9uc30pKSk7aWYoIWQuc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuIHQudHJhbnNpdGlvbnMubGVuZ3RoPjB9KSkpcmV0dXJuIHRoaXMubmV4dChlLG4pO3ZhciB2PWcoZC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmVudHJ5U2V0fSkpKSx5PWcocyhhKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBhW3RdLmNvbmZpZ3VyYXRpb259KSkpO3JldHVybnt0cmFuc2l0aW9uczpwLGVudHJ5U2V0OnYsZXhpdFNldDpnKGQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5leGl0U2V0fSkpKSxjb25maWd1cmF0aW9uOnksc291cmNlOmUsYWN0aW9uczpnKHMoYSkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gYVt0XS5hY3Rpb25zfSkpKX19LGEucHJvdG90eXBlLl90cmFuc2l0aW9uPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gQSh0KT90aGlzLnRyYW5zaXRpb25MZWFmTm9kZSh0LGUsbik6MT09PXModCkubGVuZ3RoP3RoaXMudHJhbnNpdGlvbkNvbXBvdW5kTm9kZSh0LGUsbik6dGhpcy50cmFuc2l0aW9uUGFyYWxsZWxOb2RlKHQsZSxuKX0sYS5wcm90b3R5cGUubmV4dD1mdW5jdGlvbih0LGUpe3ZhciBuLGEscyx1PXRoaXMsaD1lLm5hbWUsbD1bXSxkPVtdO3RyeXtmb3IodmFyIHA9cih0aGlzLmdldENhbmRpZGF0ZXMoaCkpLHk9cC5uZXh0KCk7IXkuZG9uZTt5PXAubmV4dCgpKXt2YXIgbT15LnZhbHVlLFM9bS5jb25kLHg9bS5pbix3PXQuY29udGV4dCxiPSF4fHwoQSh4KSYmTXQoeCk/dC5tYXRjaGVzKGYodGhpcy5nZXRTdGF0ZU5vZGVCeUlkKHgpLnBhdGgsdGhpcy5kZWxpbWl0ZXIpKTpjKGYoeCx0aGlzLmRlbGltaXRlciksdih0aGlzLnBhdGguc2xpY2UoMCwtMikpKHQudmFsdWUpKSksXz0hMTt0cnl7Xz0hU3x8Uih0aGlzLm1hY2hpbmUsUyx3LGUsdCl9Y2F0Y2godCl7dGhyb3cgbmV3IEVycm9yKFwiVW5hYmxlIHRvIGV2YWx1YXRlIGd1YXJkICdcIi5jb25jYXQoUy5uYW1lfHxTLnR5cGUsXCInIGluIHRyYW5zaXRpb24gZm9yIGV2ZW50ICdcIikuY29uY2F0KGgsXCInIGluIHN0YXRlIG5vZGUgJ1wiKS5jb25jYXQodGhpcy5pZCxcIic6XFxuXCIpLmNvbmNhdCh0Lm1lc3NhZ2UpKX1pZihfJiZiKXt2b2lkIDAhPT1tLnRhcmdldCYmKGQ9bS50YXJnZXQpLGwucHVzaC5hcHBseShsLG8oW10saShtLmFjdGlvbnMpLCExKSkscz1tO2JyZWFrfX19Y2F0Y2godCl7bj17ZXJyb3I6dH19ZmluYWxseXt0cnl7eSYmIXkuZG9uZSYmKGE9cC5yZXR1cm4pJiZhLmNhbGwocCl9ZmluYWxseXtpZihuKXRocm93IG4uZXJyb3J9fWlmKHMpe2lmKCFkLmxlbmd0aClyZXR1cm57dHJhbnNpdGlvbnM6W3NdLGVudHJ5U2V0OltdLGV4aXRTZXQ6W10sY29uZmlndXJhdGlvbjp0LnZhbHVlP1t0aGlzXTpbXSxzb3VyY2U6dCxhY3Rpb25zOmx9O3ZhciBFPWcoZC5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiB1LmdldFJlbGF0aXZlU3RhdGVOb2RlcyhlLHQuaGlzdG9yeVZhbHVlKX0pKSksVD0hIXMuaW50ZXJuYWw7cmV0dXJue3RyYW5zaXRpb25zOltzXSxlbnRyeVNldDpUP1tdOmcoRS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB1Lm5vZGVzRnJvbUNoaWxkKHQpfSkpKSxleGl0U2V0OlQ/W106W3RoaXNdLGNvbmZpZ3VyYXRpb246RSxzb3VyY2U6dCxhY3Rpb25zOmx9fX0sYS5wcm90b3R5cGUubm9kZXNGcm9tQ2hpbGQ9ZnVuY3Rpb24odCl7aWYodC5lc2NhcGVzKHRoaXMpKXJldHVybltdO2Zvcih2YXIgZT1bXSxuPXQ7biYmbiE9PXRoaXM7KWUucHVzaChuKSxuPW4ucGFyZW50O3JldHVybiBlLnB1c2godGhpcyksZX0sYS5wcm90b3R5cGUuZXNjYXBlcz1mdW5jdGlvbih0KXtpZih0aGlzPT09dClyZXR1cm4hMTtmb3IodmFyIGU9dGhpcy5wYXJlbnQ7ZTspe2lmKGU9PT10KXJldHVybiExO2U9ZS5wYXJlbnR9cmV0dXJuITB9LGEucHJvdG90eXBlLmdldEFjdGlvbnM9ZnVuY3Rpb24odCxlLG4sYSl7dmFyIHMsYyx1LGgsZj1KKFtdLGE/dGhpcy5nZXRTdGF0ZU5vZGVzKGEudmFsdWUpOlt0aGlzXSksbD10LmNvbmZpZ3VyYXRpb24ubGVuZ3RoP0ooZix0LmNvbmZpZ3VyYXRpb24pOmY7dHJ5e2Zvcih2YXIgZD1yKGwpLHA9ZC5uZXh0KCk7IXAuZG9uZTtwPWQubmV4dCgpKXtYKGYsbT1wLnZhbHVlKXx8dC5lbnRyeVNldC5wdXNoKG0pfX1jYXRjaCh0KXtzPXtlcnJvcjp0fX1maW5hbGx5e3RyeXtwJiYhcC5kb25lJiYoYz1kLnJldHVybikmJmMuY2FsbChkKX1maW5hbGx5e2lmKHMpdGhyb3cgcy5lcnJvcn19dHJ5e2Zvcih2YXIgdj1yKGYpLHk9di5uZXh0KCk7IXkuZG9uZTt5PXYubmV4dCgpKXt2YXIgbTtYKGwsbT15LnZhbHVlKSYmIVgodC5leGl0U2V0LG0ucGFyZW50KXx8dC5leGl0U2V0LnB1c2gobSl9fWNhdGNoKHQpe3U9e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e3kmJiF5LmRvbmUmJihoPXYucmV0dXJuKSYmaC5jYWxsKHYpfWZpbmFsbHl7aWYodSl0aHJvdyB1LmVycm9yfX10LnNvdXJjZXx8KHQuZXhpdFNldD1bXSx0LmVudHJ5U2V0LnB1c2godGhpcykpO3ZhciBTPWcodC5lbnRyeVNldC5tYXAoKGZ1bmN0aW9uKHIpe3ZhciBpPVtdO2lmKFwiZmluYWxcIiE9PXIudHlwZSlyZXR1cm4gaTt2YXIgbz1yLnBhcmVudDtpZighby5wYXJlbnQpcmV0dXJuIGk7aS5wdXNoKFR0KHIuaWQsci5kb25lRGF0YSksVHQoby5pZCxyLmRvbmVEYXRhP3goci5kb25lRGF0YSxlLG4pOnZvaWQgMCkpO3ZhciBhPW8ucGFyZW50O3JldHVyblwicGFyYWxsZWxcIj09PWEudHlwZSYmVShhKS5ldmVyeSgoZnVuY3Rpb24oZSl7cmV0dXJuIEgodC5jb25maWd1cmF0aW9uLGUpfSkpJiZpLnB1c2goVHQoYS5pZCkpLGl9KSkpO3QuZXhpdFNldC5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiBlLm9yZGVyLXQub3JkZXJ9KSksdC5lbnRyeVNldC5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiB0Lm9yZGVyLWUub3JkZXJ9KSk7dmFyIHc9bmV3IFNldCh0LmVudHJ5U2V0KSxiPW5ldyBTZXQodC5leGl0U2V0KSxfPWkoW2coQXJyYXkuZnJvbSh3KS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBvKG8oW10saSh0LmFjdGl2aXRpZXMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gd3QodCl9KSkpLCExKSxpKHQub25FbnRyeSksITEpfSkpKS5jb25jYXQoUy5tYXAodnQpKSxnKEFycmF5LmZyb20oYikubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gbyhvKFtdLGkodC5vbkV4aXQpLCExKSxpKHQuYWN0aXZpdGllcy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBidCh0KX0pKSksITEpfSkpKV0sMiksRT1fWzBdLFQ9X1sxXTtyZXR1cm4gZHQoVC5jb25jYXQodC5hY3Rpb25zKS5jb25jYXQoRSksdGhpcy5tYWNoaW5lLm9wdGlvbnMuYWN0aW9ucyl9LGEucHJvdG90eXBlLnRyYW5zaXRpb249ZnVuY3Rpb24odCxlLG4pe3ZvaWQgMD09PXQmJih0PXRoaXMuaW5pdGlhbFN0YXRlKTt2YXIgcixhLHM9TChlKTtpZih0IGluc3RhbmNlb2Yga3Qpcj12b2lkIDA9PT1uP3Q6dGhpcy5yZXNvbHZlU3RhdGUoa3QuZnJvbSh0LG4pKTtlbHNle3ZhciBjPUEodCk/dGhpcy5yZXNvbHZlKGwodGhpcy5nZXRSZXNvbHZlZFBhdGgodCkpKTp0aGlzLnJlc29sdmUodCksdT1udWxsIT1uP246dGhpcy5tYWNoaW5lLmNvbnRleHQ7cj10aGlzLnJlc29sdmVTdGF0ZShrdC5mcm9tKGMsdSkpfWlmKHRoaXMuc3RyaWN0JiYhdGhpcy5ldmVudHMuaW5jbHVkZXMocy5uYW1lKSYmKGE9cy5uYW1lLCEvXihkb25lfGVycm9yKVxcLi8udGVzdChhKSkpdGhyb3cgbmV3IEVycm9yKFwiTWFjaGluZSAnXCIuY29uY2F0KHRoaXMuaWQsXCInIGRvZXMgbm90IGFjY2VwdCBldmVudCAnXCIpLmNvbmNhdChzLm5hbWUsXCInXCIpKTt2YXIgaD10aGlzLl90cmFuc2l0aW9uKHIudmFsdWUscixzKXx8e3RyYW5zaXRpb25zOltdLGNvbmZpZ3VyYXRpb246W10sZW50cnlTZXQ6W10sZXhpdFNldDpbXSxzb3VyY2U6cixhY3Rpb25zOltdfSxmPUooW10sdGhpcy5nZXRTdGF0ZU5vZGVzKHIudmFsdWUpKSxkPWguY29uZmlndXJhdGlvbi5sZW5ndGg/SihmLGguY29uZmlndXJhdGlvbik6ZjtyZXR1cm4gaC5jb25maWd1cmF0aW9uPW8oW10saShkKSwhMSksdGhpcy5yZXNvbHZlVHJhbnNpdGlvbihoLHIscyl9LGEucHJvdG90eXBlLnJlc29sdmVSYWlzZWRUcmFuc2l0aW9uPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcixhPXQuYWN0aW9ucztyZXR1cm4odD10aGlzLnRyYW5zaXRpb24odCxlKSkuX2V2ZW50PW4sdC5ldmVudD1uLmRhdGEsKHI9dC5hY3Rpb25zKS51bnNoaWZ0LmFwcGx5KHIsbyhbXSxpKGEpLCExKSksdH0sYS5wcm90b3R5cGUucmVzb2x2ZVRyYW5zaXRpb249ZnVuY3Rpb24obixvLGEsYyl7dmFyIHUsaCxmPXRoaXM7dm9pZCAwPT09YSYmKGE9aHQpLHZvaWQgMD09PWMmJihjPXRoaXMubWFjaGluZS5jb250ZXh0KTt2YXIgbD1uLmNvbmZpZ3VyYXRpb24sZD0hb3x8bi50cmFuc2l0aW9ucy5sZW5ndGg+MCxwPWQ/JCh0aGlzLm1hY2hpbmUsbCk6dm9pZCAwLHY9bz9vLmhpc3RvcnlWYWx1ZT9vLmhpc3RvcnlWYWx1ZTpuLnNvdXJjZT90aGlzLm1hY2hpbmUuaGlzdG9yeVZhbHVlKG8udmFsdWUpOnZvaWQgMDp2b2lkIDAseT1vP28uY29udGV4dDpjLGc9dGhpcy5nZXRBY3Rpb25zKG4seSxhLG8pLG09bz9lKHt9LG8uYWN0aXZpdGllcyk6e307dHJ5e2Zvcih2YXIgUz1yKGcpLHc9Uy5uZXh0KCk7IXcuZG9uZTt3PVMubmV4dCgpKXt2YXIgRT13LnZhbHVlO0UudHlwZT09PUs/bVtFLmFjdGl2aXR5LmlkfHxFLmFjdGl2aXR5LnR5cGVdPUU6RS50eXBlPT09USYmKG1bRS5hY3Rpdml0eS5pZHx8RS5hY3Rpdml0eS50eXBlXT0hMSl9fWNhdGNoKHQpe3U9e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e3cmJiF3LmRvbmUmJihoPVMucmV0dXJuKSYmaC5jYWxsKFMpfWZpbmFsbHl7aWYodSl0aHJvdyB1LmVycm9yfX12YXIgVCxOLE89aShQdCh0aGlzLG8seSxhLGcsdGhpcy5tYWNoaW5lLmNvbmZpZy5wcmVzZXJ2ZUFjdGlvbk9yZGVyKSwyKSxQPU9bMF0saz1PWzFdLEk9aShiKFAsKGZ1bmN0aW9uKGUpe3JldHVybiBlLnR5cGU9PT1XfHxlLnR5cGU9PT1ZJiZlLnRvPT09dC5TcGVjaWFsVGFyZ2V0cy5JbnRlcm5hbH0pKSwyKSxqPUlbMF0sQz1JWzFdLFY9UC5maWx0ZXIoKGZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiB0LnR5cGU9PT1LJiYobnVsbD09PShlPXQuYWN0aXZpdHkpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLnR5cGUpPT09aXR9KSkucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiB0W2UuYWN0aXZpdHkuaWRdPWZ1bmN0aW9uKHQsZSxuLHIpe3ZhciBpLG89TSh0LnNyYyksYT1udWxsPT09KGk9bnVsbD09ZT92b2lkIDA6ZS5vcHRpb25zLnNlcnZpY2VzKXx8dm9pZCAwPT09aT92b2lkIDA6aVtvLnR5cGVdLHM9dC5kYXRhP3godC5kYXRhLG4scik6dm9pZCAwLGM9YT9WdChhLHQuaWQscyk6Q3QodC5pZCk7cmV0dXJuIGMubWV0YT10LGN9KGUuYWN0aXZpdHksZi5tYWNoaW5lLGssYSksdH0pLG8/ZSh7fSxvLmNoaWxkcmVuKTp7fSksTD1wP24uY29uZmlndXJhdGlvbjpvP28uY29uZmlndXJhdGlvbjpbXSxEPUgoTCx0aGlzKSxSPW5ldyBrdCh7dmFsdWU6cHx8by52YWx1ZSxjb250ZXh0OmssX2V2ZW50OmEsX3Nlc3Npb25pZDpvP28uX3Nlc3Npb25pZDpudWxsLGhpc3RvcnlWYWx1ZTpwP3Y/KFQ9dixOPXAse2N1cnJlbnQ6TixzdGF0ZXM6XyhULE4pfSk6dm9pZCAwOm8/by5oaXN0b3J5VmFsdWU6dm9pZCAwLGhpc3Rvcnk6IXB8fG4uc291cmNlP286dm9pZCAwLGFjdGlvbnM6cD9DOltdLGFjdGl2aXRpZXM6cD9tOm8/by5hY3Rpdml0aWVzOnt9LGV2ZW50czpbXSxjb25maWd1cmF0aW9uOkwsdHJhbnNpdGlvbnM6bi50cmFuc2l0aW9ucyxjaGlsZHJlbjpWLGRvbmU6RCx0YWdzOm51bGw9PW8/dm9pZCAwOm8udGFncyxtYWNoaW5lOnRoaXN9KSx6PXkhPT1rO1IuY2hhbmdlZD1hLm5hbWU9PT1zdHx8ejt2YXIgRj1SLmhpc3Rvcnk7RiYmZGVsZXRlIEYuaGlzdG9yeTt2YXIgVT0hRCYmKHRoaXMuX3RyYW5zaWVudHx8bC5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4gdC5fdHJhbnNpZW50fSkpKTtpZighKGR8fFUmJlwiXCIhPT1hLm5hbWUpKXJldHVybiBSO3ZhciBCPVI7aWYoIUQpZm9yKFUmJihCPXRoaXMucmVzb2x2ZVJhaXNlZFRyYW5zaXRpb24oQix7dHlwZTp0dH0sYSkpO2oubGVuZ3RoOyl7dmFyIEo9ai5zaGlmdCgpO0I9dGhpcy5yZXNvbHZlUmFpc2VkVHJhbnNpdGlvbihCLEouX2V2ZW50LGEpfXZhciBxPUIuY2hhbmdlZHx8KEY/ISFCLmFjdGlvbnMubGVuZ3RofHx6fHx0eXBlb2YgRi52YWx1ZSE9dHlwZW9mIEIudmFsdWV8fCFmdW5jdGlvbiB0KGUsbil7aWYoZT09PW4pcmV0dXJuITA7aWYodm9pZCAwPT09ZXx8dm9pZCAwPT09bilyZXR1cm4hMTtpZihBKGUpfHxBKG4pKXJldHVybiBlPT09bjt2YXIgcj1zKGUpLGk9cyhuKTtyZXR1cm4gci5sZW5ndGg9PT1pLmxlbmd0aCYmci5ldmVyeSgoZnVuY3Rpb24ocil7cmV0dXJuIHQoZVtyXSxuW3JdKX0pKX0oQi52YWx1ZSxGLnZhbHVlKTp2b2lkIDApO3JldHVybiBCLmNoYW5nZWQ9cSxCLmhpc3Rvcnk9RixCLnRhZ3M9RyhCLmNvbmZpZ3VyYXRpb24pLEJ9LGEucHJvdG90eXBlLmdldFN0YXRlTm9kZT1mdW5jdGlvbih0KXtpZihNdCh0KSlyZXR1cm4gdGhpcy5tYWNoaW5lLmdldFN0YXRlTm9kZUJ5SWQodCk7aWYoIXRoaXMuc3RhdGVzKXRocm93IG5ldyBFcnJvcihcIlVuYWJsZSB0byByZXRyaWV2ZSBjaGlsZCBzdGF0ZSAnXCIuY29uY2F0KHQsXCInIGZyb20gJ1wiKS5jb25jYXQodGhpcy5pZCxcIic7IG5vIGNoaWxkIHN0YXRlcyBleGlzdC5cIikpO3ZhciBlPXRoaXMuc3RhdGVzW3RdO2lmKCFlKXRocm93IG5ldyBFcnJvcihcIkNoaWxkIHN0YXRlICdcIi5jb25jYXQodCxcIicgZG9lcyBub3QgZXhpc3Qgb24gJ1wiKS5jb25jYXQodGhpcy5pZCxcIidcIikpO3JldHVybiBlfSxhLnByb3RvdHlwZS5nZXRTdGF0ZU5vZGVCeUlkPWZ1bmN0aW9uKHQpe3ZhciBlPU10KHQpP3Quc2xpY2UoXCIjXCIubGVuZ3RoKTp0O2lmKGU9PT10aGlzLmlkKXJldHVybiB0aGlzO3ZhciBuPXRoaXMubWFjaGluZS5pZE1hcFtlXTtpZighbil0aHJvdyBuZXcgRXJyb3IoXCJDaGlsZCBzdGF0ZSBub2RlICcjXCIuY29uY2F0KGUsXCInIGRvZXMgbm90IGV4aXN0IG9uIG1hY2hpbmUgJ1wiKS5jb25jYXQodGhpcy5pZCxcIidcIikpO3JldHVybiBufSxhLnByb3RvdHlwZS5nZXRTdGF0ZU5vZGVCeVBhdGg9ZnVuY3Rpb24odCl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIHQmJk10KHQpKXRyeXtyZXR1cm4gdGhpcy5nZXRTdGF0ZU5vZGVCeUlkKHQuc2xpY2UoMSkpfWNhdGNoKHQpe31mb3IodmFyIGU9aCh0LHRoaXMuZGVsaW1pdGVyKS5zbGljZSgpLG49dGhpcztlLmxlbmd0aDspe3ZhciByPWUuc2hpZnQoKTtpZighci5sZW5ndGgpYnJlYWs7bj1uLmdldFN0YXRlTm9kZShyKX1yZXR1cm4gbn0sYS5wcm90b3R5cGUucmVzb2x2ZT1mdW5jdGlvbih0KXt2YXIgZSxuPXRoaXM7aWYoIXQpcmV0dXJuIHRoaXMuaW5pdGlhbFN0YXRlVmFsdWV8fFJ0O3N3aXRjaCh0aGlzLnR5cGUpe2Nhc2VcInBhcmFsbGVsXCI6cmV0dXJuIGQodGhpcy5pbml0aWFsU3RhdGVWYWx1ZSwoZnVuY3Rpb24oZSxyKXtyZXR1cm4gZT9uLmdldFN0YXRlTm9kZShyKS5yZXNvbHZlKHRbcl18fGUpOlJ0fSkpO2Nhc2VcImNvbXBvdW5kXCI6aWYoQSh0KSl7dmFyIHI9dGhpcy5nZXRTdGF0ZU5vZGUodCk7cmV0dXJuXCJwYXJhbGxlbFwiPT09ci50eXBlfHxcImNvbXBvdW5kXCI9PT1yLnR5cGU/KChlPXt9KVt0XT1yLmluaXRpYWxTdGF0ZVZhbHVlLGUpOnR9cmV0dXJuIHModCkubGVuZ3RoP2QodCwoZnVuY3Rpb24odCxlKXtyZXR1cm4gdD9uLmdldFN0YXRlTm9kZShlKS5yZXNvbHZlKHQpOlJ0fSkpOnRoaXMuaW5pdGlhbFN0YXRlVmFsdWV8fHt9O2RlZmF1bHQ6cmV0dXJuIHR8fFJ0fX0sYS5wcm90b3R5cGUuZ2V0UmVzb2x2ZWRQYXRoPWZ1bmN0aW9uKHQpe2lmKE10KHQpKXt2YXIgZT10aGlzLm1hY2hpbmUuaWRNYXBbdC5zbGljZShcIiNcIi5sZW5ndGgpXTtpZighZSl0aHJvdyBuZXcgRXJyb3IoXCJVbmFibGUgdG8gZmluZCBzdGF0ZSBub2RlICdcIi5jb25jYXQodCxcIidcIikpO3JldHVybiBlLnBhdGh9cmV0dXJuIGgodCx0aGlzLmRlbGltaXRlcil9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLnByb3RvdHlwZSxcImluaXRpYWxTdGF0ZVZhbHVlXCIse2dldDpmdW5jdGlvbigpe3ZhciB0LGU7aWYodGhpcy5fX2NhY2hlLmluaXRpYWxTdGF0ZVZhbHVlKXJldHVybiB0aGlzLl9fY2FjaGUuaW5pdGlhbFN0YXRlVmFsdWU7aWYoXCJwYXJhbGxlbFwiPT09dGhpcy50eXBlKWU9cCh0aGlzLnN0YXRlcywoZnVuY3Rpb24odCl7cmV0dXJuIHQuaW5pdGlhbFN0YXRlVmFsdWV8fFJ0fSksKGZ1bmN0aW9uKHQpe3JldHVybiEoXCJoaXN0b3J5XCI9PT10LnR5cGUpfSkpO2Vsc2UgaWYodm9pZCAwIT09dGhpcy5pbml0aWFsKXtpZighdGhpcy5zdGF0ZXNbdGhpcy5pbml0aWFsXSl0aHJvdyBuZXcgRXJyb3IoXCJJbml0aWFsIHN0YXRlICdcIi5jb25jYXQodGhpcy5pbml0aWFsLFwiJyBub3QgZm91bmQgb24gJ1wiKS5jb25jYXQodGhpcy5rZXksXCInXCIpKTtlPUYodGhpcy5zdGF0ZXNbdGhpcy5pbml0aWFsXSk/dGhpcy5pbml0aWFsOigodD17fSlbdGhpcy5pbml0aWFsXT10aGlzLnN0YXRlc1t0aGlzLmluaXRpYWxdLmluaXRpYWxTdGF0ZVZhbHVlLHQpfWVsc2UgZT17fTtyZXR1cm4gdGhpcy5fX2NhY2hlLmluaXRpYWxTdGF0ZVZhbHVlPWUsdGhpcy5fX2NhY2hlLmluaXRpYWxTdGF0ZVZhbHVlfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGEucHJvdG90eXBlLmdldEluaXRpYWxTdGF0ZT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuZ2V0U3RhdGVOb2Rlcyh0KTtyZXR1cm4gdGhpcy5yZXNvbHZlVHJhbnNpdGlvbih7Y29uZmlndXJhdGlvbjpuLGVudHJ5U2V0Om4sZXhpdFNldDpbXSx0cmFuc2l0aW9uczpbXSxzb3VyY2U6dm9pZCAwLGFjdGlvbnM6W119LHZvaWQgMCx2b2lkIDAsZSl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLnByb3RvdHlwZSxcImluaXRpYWxTdGF0ZVwiLHtnZXQ6ZnVuY3Rpb24oKXt0aGlzLl9pbml0KCk7dmFyIHQ9dGhpcy5pbml0aWFsU3RhdGVWYWx1ZTtpZighdCl0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgcmV0cmlldmUgaW5pdGlhbCBzdGF0ZSBmcm9tIHNpbXBsZSBzdGF0ZSAnXCIuY29uY2F0KHRoaXMuaWQsXCInLlwiKSk7cmV0dXJuIHRoaXMuZ2V0SW5pdGlhbFN0YXRlKHQpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLnByb3RvdHlwZSxcInRhcmdldFwiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgdDtpZihcImhpc3RvcnlcIj09PXRoaXMudHlwZSl7dmFyIGU9dGhpcy5jb25maWc7dD1BKGUudGFyZ2V0KSYmTXQoZS50YXJnZXQpP2wodGhpcy5tYWNoaW5lLmdldFN0YXRlTm9kZUJ5SWQoZS50YXJnZXQpLnBhdGguc2xpY2UodGhpcy5wYXRoLmxlbmd0aC0xKSk6ZS50YXJnZXR9cmV0dXJuIHR9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksYS5wcm90b3R5cGUuZ2V0UmVsYXRpdmVTdGF0ZU5vZGVzPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdm9pZCAwPT09biYmKG49ITApLG4/XCJoaXN0b3J5XCI9PT10LnR5cGU/dC5yZXNvbHZlSGlzdG9yeShlKTp0LmluaXRpYWxTdGF0ZU5vZGVzOlt0XX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGEucHJvdG90eXBlLFwiaW5pdGlhbFN0YXRlTm9kZXNcIix7Z2V0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gRih0aGlzKT9bdGhpc106XCJjb21wb3VuZFwiIT09dGhpcy50eXBlfHx0aGlzLmluaXRpYWw/Zyh5KHRoaXMuaW5pdGlhbFN0YXRlVmFsdWUpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHQuZ2V0RnJvbVJlbGF0aXZlUGF0aChlKX0pKSk6W3RoaXNdfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGEucHJvdG90eXBlLmdldEZyb21SZWxhdGl2ZVBhdGg9ZnVuY3Rpb24odCl7aWYoIXQubGVuZ3RoKXJldHVyblt0aGlzXTt2YXIgZT1pKHQpLG49ZVswXSxyPWUuc2xpY2UoMSk7aWYoIXRoaXMuc3RhdGVzKXRocm93IG5ldyBFcnJvcihcIkNhbm5vdCByZXRyaWV2ZSBzdWJQYXRoICdcIi5jb25jYXQobixcIicgZnJvbSBub2RlIHdpdGggbm8gc3RhdGVzXCIpKTt2YXIgbz10aGlzLmdldFN0YXRlTm9kZShuKTtpZihcImhpc3RvcnlcIj09PW8udHlwZSlyZXR1cm4gby5yZXNvbHZlSGlzdG9yeSgpO2lmKCF0aGlzLnN0YXRlc1tuXSl0aHJvdyBuZXcgRXJyb3IoXCJDaGlsZCBzdGF0ZSAnXCIuY29uY2F0KG4sXCInIGRvZXMgbm90IGV4aXN0IG9uICdcIikuY29uY2F0KHRoaXMuaWQsXCInXCIpKTtyZXR1cm4gdGhpcy5zdGF0ZXNbbl0uZ2V0RnJvbVJlbGF0aXZlUGF0aChyKX0sYS5wcm90b3R5cGUuaGlzdG9yeVZhbHVlPWZ1bmN0aW9uKHQpe2lmKHModGhpcy5zdGF0ZXMpLmxlbmd0aClyZXR1cm57Y3VycmVudDp0fHx0aGlzLmluaXRpYWxTdGF0ZVZhbHVlLHN0YXRlczpwKHRoaXMuc3RhdGVzLChmdW5jdGlvbihlLG4pe2lmKCF0KXJldHVybiBlLmhpc3RvcnlWYWx1ZSgpO3ZhciByPUEodCk/dm9pZCAwOnRbbl07cmV0dXJuIGUuaGlzdG9yeVZhbHVlKHJ8fGUuaW5pdGlhbFN0YXRlVmFsdWUpfSksKGZ1bmN0aW9uKHQpe3JldHVybiF0Lmhpc3Rvcnl9KSl9fSxhLnByb3RvdHlwZS5yZXNvbHZlSGlzdG9yeT1mdW5jdGlvbih0KXt2YXIgZT10aGlzO2lmKFwiaGlzdG9yeVwiIT09dGhpcy50eXBlKXJldHVyblt0aGlzXTt2YXIgbj10aGlzLnBhcmVudDtpZighdCl7dmFyIGk9dGhpcy50YXJnZXQ7cmV0dXJuIGk/Zyh5KGkpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIG4uZ2V0RnJvbVJlbGF0aXZlUGF0aCh0KX0pKSk6bi5pbml0aWFsU3RhdGVOb2Rlc312YXIgbyxhLHM9KG89bi5wYXRoLGE9XCJzdGF0ZXNcIixmdW5jdGlvbih0KXt2YXIgZSxuLGk9dDt0cnl7Zm9yKHZhciBzPXIobyksYz1zLm5leHQoKTshYy5kb25lO2M9cy5uZXh0KCkpe3ZhciB1PWMudmFsdWU7aT1pW2FdW3VdfX1jYXRjaCh0KXtlPXtlcnJvcjp0fX1maW5hbGx5e3RyeXtjJiYhYy5kb25lJiYobj1zLnJldHVybikmJm4uY2FsbChzKX1maW5hbGx5e2lmKGUpdGhyb3cgZS5lcnJvcn19cmV0dXJuIGl9KSh0KS5jdXJyZW50O3JldHVybiBBKHMpP1tuLmdldFN0YXRlTm9kZShzKV06Zyh5KHMpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuXCJkZWVwXCI9PT1lLmhpc3Rvcnk/bi5nZXRGcm9tUmVsYXRpdmVQYXRoKHQpOltuLnN0YXRlc1t0WzBdXV19KSkpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYS5wcm90b3R5cGUsXCJzdGF0ZUlkc1wiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9ZyhzKHRoaXMuc3RhdGVzKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiB0LnN0YXRlc1tlXS5zdGF0ZUlkc30pKSk7cmV0dXJuW3RoaXMuaWRdLmNvbmNhdChlKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYS5wcm90b3R5cGUsXCJldmVudHNcIix7Z2V0OmZ1bmN0aW9uKCl7dmFyIHQsZSxuLGk7aWYodGhpcy5fX2NhY2hlLmV2ZW50cylyZXR1cm4gdGhpcy5fX2NhY2hlLmV2ZW50czt2YXIgbz10aGlzLnN0YXRlcyxhPW5ldyBTZXQodGhpcy5vd25FdmVudHMpO2lmKG8pdHJ5e2Zvcih2YXIgYz1yKHMobykpLHU9Yy5uZXh0KCk7IXUuZG9uZTt1PWMubmV4dCgpKXt2YXIgaD1vW3UudmFsdWVdO2lmKGguc3RhdGVzKXRyeXtmb3IodmFyIGY9KG49dm9pZCAwLHIoaC5ldmVudHMpKSxsPWYubmV4dCgpOyFsLmRvbmU7bD1mLm5leHQoKSl7dmFyIGQ9bC52YWx1ZTthLmFkZChcIlwiLmNvbmNhdChkKSl9fWNhdGNoKHQpe249e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e2wmJiFsLmRvbmUmJihpPWYucmV0dXJuKSYmaS5jYWxsKGYpfWZpbmFsbHl7aWYobil0aHJvdyBuLmVycm9yfX19fWNhdGNoKGUpe3Q9e2Vycm9yOmV9fWZpbmFsbHl7dHJ5e3UmJiF1LmRvbmUmJihlPWMucmV0dXJuKSYmZS5jYWxsKGMpfWZpbmFsbHl7aWYodCl0aHJvdyB0LmVycm9yfX1yZXR1cm4gdGhpcy5fX2NhY2hlLmV2ZW50cz1BcnJheS5mcm9tKGEpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLnByb3RvdHlwZSxcIm93bkV2ZW50c1wiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgdD1uZXcgU2V0KHRoaXMudHJhbnNpdGlvbnMuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4hKCF0LnRhcmdldCYmIXQuYWN0aW9ucy5sZW5ndGgmJnQuaW50ZXJuYWwpfSkpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuZXZlbnRUeXBlfSkpKTtyZXR1cm4gQXJyYXkuZnJvbSh0KX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxhLnByb3RvdHlwZS5yZXNvbHZlVGFyZ2V0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYodm9pZCAwIT09dClyZXR1cm4gdC5tYXAoKGZ1bmN0aW9uKHQpe2lmKCFBKHQpKXJldHVybiB0O3ZhciBuPXRbMF09PT1lLmRlbGltaXRlcjtpZihuJiYhZS5wYXJlbnQpcmV0dXJuIGUuZ2V0U3RhdGVOb2RlQnlQYXRoKHQuc2xpY2UoMSkpO3ZhciByPW4/ZS5rZXkrdDp0O2lmKCFlLnBhcmVudClyZXR1cm4gZS5nZXRTdGF0ZU5vZGVCeVBhdGgocik7dHJ5e3JldHVybiBlLnBhcmVudC5nZXRTdGF0ZU5vZGVCeVBhdGgocil9Y2F0Y2godCl7dGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCB0cmFuc2l0aW9uIGRlZmluaXRpb24gZm9yIHN0YXRlIG5vZGUgJ1wiLmNvbmNhdChlLmlkLFwiJzpcXG5cIikuY29uY2F0KHQubWVzc2FnZSkpfX0pKX0sYS5wcm90b3R5cGUuZm9ybWF0VHJhbnNpdGlvbj1mdW5jdGlvbih0KXt2YXIgbj10aGlzLHI9ZnVuY3Rpb24odCl7aWYodm9pZCAwIT09dCYmXCJcIiE9PXQpcmV0dXJuIFModCl9KHQudGFyZ2V0KSxpPVwiaW50ZXJuYWxcImluIHQ/dC5pbnRlcm5hbDohcnx8ci5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4gQSh0KSYmdFswXT09PW4uZGVsaW1pdGVyfSkpLG89dGhpcy5tYWNoaW5lLm9wdGlvbnMuZ3VhcmRzLGE9dGhpcy5yZXNvbHZlVGFyZ2V0KHIpLHM9ZShlKHt9LHQpLHthY3Rpb25zOmR0KFModC5hY3Rpb25zKSksY29uZDpPKHQuY29uZCxvKSx0YXJnZXQ6YSxzb3VyY2U6dGhpcyxpbnRlcm5hbDppLGV2ZW50VHlwZTp0LmV2ZW50LHRvSlNPTjpmdW5jdGlvbigpe3JldHVybiBlKGUoe30scykse3RhcmdldDpzLnRhcmdldD9zLnRhcmdldC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVyblwiI1wiLmNvbmNhdCh0LmlkKX0pKTp2b2lkIDAsc291cmNlOlwiI1wiLmNvbmNhdChuLmlkKX0pfX0pO3JldHVybiBzfSxhLnByb3RvdHlwZS5mb3JtYXRUcmFuc2l0aW9ucz1mdW5jdGlvbigpe3ZhciB0LGUsYSxjPXRoaXM7aWYodGhpcy5jb25maWcub24paWYoQXJyYXkuaXNBcnJheSh0aGlzLmNvbmZpZy5vbikpYT10aGlzLmNvbmZpZy5vbjtlbHNle3ZhciB1PXRoaXMuY29uZmlnLm9uLGg9dVtcIipcIl0sZj12b2lkIDA9PT1oP1tdOmgsbD1uKHUsW1wiKlwiXSk7YT1nKHMobCkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gRCh0LGxbdF0pfSkpLmNvbmNhdChEKFwiKlwiLGYpKSl9ZWxzZSBhPVtdO3ZhciBkPXRoaXMuY29uZmlnLmFsd2F5cz9EKFwiXCIsdGhpcy5jb25maWcuYWx3YXlzKTpbXSxwPXRoaXMuY29uZmlnLm9uRG9uZT9EKFN0cmluZyhUdCh0aGlzLmlkKSksdGhpcy5jb25maWcub25Eb25lKTpbXSx2PWcodGhpcy5pbnZva2UubWFwKChmdW5jdGlvbih0KXt2YXIgZT1bXTtyZXR1cm4gdC5vbkRvbmUmJmUucHVzaC5hcHBseShlLG8oW10saShEKFN0cmluZyhOdCh0LmlkKSksdC5vbkRvbmUpKSwhMSkpLHQub25FcnJvciYmZS5wdXNoLmFwcGx5KGUsbyhbXSxpKEQoU3RyaW5nKEF0KHQuaWQpKSx0Lm9uRXJyb3IpKSwhMSkpLGV9KSkpLHk9dGhpcy5hZnRlcixtPWcobyhvKG8obyhbXSxpKHApLCExKSxpKHYpLCExKSxpKGEpLCExKSxpKGQpLCExKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBTKHQpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGMuZm9ybWF0VHJhbnNpdGlvbih0KX0pKX0pKSk7dHJ5e2Zvcih2YXIgeD1yKHkpLHc9eC5uZXh0KCk7IXcuZG9uZTt3PXgubmV4dCgpKXt2YXIgYj13LnZhbHVlO20ucHVzaChiKX19Y2F0Y2goZSl7dD17ZXJyb3I6ZX19ZmluYWxseXt0cnl7dyYmIXcuZG9uZSYmKGU9eC5yZXR1cm4pJiZlLmNhbGwoeCl9ZmluYWxseXtpZih0KXRocm93IHQuZXJyb3J9fXJldHVybiBtfSxhfSgpO3ZhciBGdD17ZGVmZXJFdmVudHM6ITF9LFV0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt0aGlzLnByb2Nlc3NpbmdFdmVudD0hMSx0aGlzLnF1ZXVlPVtdLHRoaXMuaW5pdGlhbGl6ZWQ9ITEsdGhpcy5vcHRpb25zPWUoZSh7fSxGdCksdCl9cmV0dXJuIHQucHJvdG90eXBlLmluaXRpYWxpemU9ZnVuY3Rpb24odCl7aWYodGhpcy5pbml0aWFsaXplZD0hMCx0KXtpZighdGhpcy5vcHRpb25zLmRlZmVyRXZlbnRzKXJldHVybiB2b2lkIHRoaXMuc2NoZWR1bGUodCk7dGhpcy5wcm9jZXNzKHQpfXRoaXMuZmx1c2hFdmVudHMoKX0sdC5wcm90b3R5cGUuc2NoZWR1bGU9ZnVuY3Rpb24odCl7aWYodGhpcy5pbml0aWFsaXplZCYmIXRoaXMucHJvY2Vzc2luZ0V2ZW50KXtpZigwIT09dGhpcy5xdWV1ZS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKFwiRXZlbnQgcXVldWUgc2hvdWxkIGJlIGVtcHR5IHdoZW4gaXQgaXMgbm90IHByb2Nlc3NpbmcgZXZlbnRzXCIpO3RoaXMucHJvY2Vzcyh0KSx0aGlzLmZsdXNoRXZlbnRzKCl9ZWxzZSB0aGlzLnF1ZXVlLnB1c2godCl9LHQucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5xdWV1ZT1bXX0sdC5wcm90b3R5cGUuZmx1c2hFdmVudHM9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5xdWV1ZS5zaGlmdCgpO3Q7KXRoaXMucHJvY2Vzcyh0KSx0PXRoaXMucXVldWUuc2hpZnQoKX0sdC5wcm90b3R5cGUucHJvY2Vzcz1mdW5jdGlvbih0KXt0aGlzLnByb2Nlc3NpbmdFdmVudD0hMDt0cnl7dCgpfWNhdGNoKHQpe3Rocm93IHRoaXMuY2xlYXIoKSx0fWZpbmFsbHl7dGhpcy5wcm9jZXNzaW5nRXZlbnQ9ITF9fSx0fSgpLEJ0PW5ldyBNYXAsSnQ9MCxxdD1mdW5jdGlvbigpe3JldHVyblwieDpcIi5jb25jYXQoSnQrKyl9LCR0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIEJ0LnNldCh0LGUpLHR9LFh0PWZ1bmN0aW9uKHQpe3JldHVybiBCdC5nZXQodCl9LEh0PWZ1bmN0aW9uKHQpe0J0LmRlbGV0ZSh0KX07ZnVuY3Rpb24gR3QoKXtyZXR1cm5cInVuZGVmaW5lZFwiIT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBzZWxmP3NlbGY6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6dm9pZCAwfWZ1bmN0aW9uIEt0KHQpe2lmKEd0KCkpe3ZhciBlPWZ1bmN0aW9uKCl7dmFyIHQ9R3QoKTtpZih0JiZcIl9feHN0YXRlX19cImluIHQpcmV0dXJuIHQuX194c3RhdGVfX30oKTtlJiZlLnJlZ2lzdGVyKHQpfX1mdW5jdGlvbiBRdCh0LG4pe3ZvaWQgMD09PW4mJihuPXt9KTt2YXIgcixpPXQuaW5pdGlhbFN0YXRlLG89bmV3IFNldCxhPVtdLHM9ITEsYz0ocj17aWQ6bi5pZCxzZW5kOmZ1bmN0aW9uKGUpe2EucHVzaChlKSxmdW5jdGlvbigpe2lmKCFzKXtmb3Iocz0hMDthLmxlbmd0aD4wOyl7dmFyIGU9YS5zaGlmdCgpO2k9dC50cmFuc2l0aW9uKGksZSx1KSxvLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm5leHQoaSl9KSl9cz0hMX19KCl9LGdldFNuYXBzaG90OmZ1bmN0aW9uKCl7cmV0dXJuIGl9LHN1YnNjcmliZTpmdW5jdGlvbih0LGUsbil7dmFyIHI9eih0LGUsbik7cmV0dXJuIG8uYWRkKHIpLHIubmV4dChpKSx7dW5zdWJzY3JpYmU6ZnVuY3Rpb24oKXtvLmRlbGV0ZShyKX19fX0sZSh7c3Vic2NyaWJlOmZ1bmN0aW9uKCl7cmV0dXJue3Vuc3Vic2NyaWJlOmZ1bmN0aW9uKCl7fX19LGlkOlwiYW5vbnltb3VzXCIsZ2V0U25hcHNob3Q6ZnVuY3Rpb24oKXt9fSxyKSksdT17cGFyZW50Om4ucGFyZW50LHNlbGY6YyxpZDpuLmlkfHxcImFub255bW91c1wiLG9ic2VydmVyczpvfTtyZXR1cm4gaT10LnN0YXJ0P3Quc3RhcnQodSk6aSxjfXZhciBXdCxZdD17c3luYzohMSxhdXRvRm9yd2FyZDohMX07KFd0PXQuSW50ZXJwcmV0ZXJTdGF0dXN8fCh0LkludGVycHJldGVyU3RhdHVzPXt9KSlbV3QuTm90U3RhcnRlZD0wXT1cIk5vdFN0YXJ0ZWRcIixXdFtXdC5SdW5uaW5nPTFdPVwiUnVubmluZ1wiLFd0W1d0LlN0b3BwZWQ9Ml09XCJTdG9wcGVkXCI7dmFyIFp0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbihyLGkpe3ZhciBvPXRoaXM7dm9pZCAwPT09aSYmKGk9bi5kZWZhdWx0T3B0aW9ucyksdGhpcy5tYWNoaW5lPXIsdGhpcy5zY2hlZHVsZXI9bmV3IFV0LHRoaXMuZGVsYXllZEV2ZW50c01hcD17fSx0aGlzLmxpc3RlbmVycz1uZXcgU2V0LHRoaXMuY29udGV4dExpc3RlbmVycz1uZXcgU2V0LHRoaXMuc3RvcExpc3RlbmVycz1uZXcgU2V0LHRoaXMuZG9uZUxpc3RlbmVycz1uZXcgU2V0LHRoaXMuZXZlbnRMaXN0ZW5lcnM9bmV3IFNldCx0aGlzLnNlbmRMaXN0ZW5lcnM9bmV3IFNldCx0aGlzLmluaXRpYWxpemVkPSExLHRoaXMuc3RhdHVzPXQuSW50ZXJwcmV0ZXJTdGF0dXMuTm90U3RhcnRlZCx0aGlzLmNoaWxkcmVuPW5ldyBNYXAsdGhpcy5mb3J3YXJkVG89bmV3IFNldCx0aGlzLmluaXQ9dGhpcy5zdGFydCx0aGlzLnNlbmQ9ZnVuY3Rpb24oZSxuKXtpZihUKGUpKXJldHVybiBvLmJhdGNoKGUpLG8uc3RhdGU7dmFyIHI9TChWKGUsbikpO2lmKG8uc3RhdHVzPT09dC5JbnRlcnByZXRlclN0YXR1cy5TdG9wcGVkKXJldHVybiBvLnN0YXRlO2lmKG8uc3RhdHVzIT09dC5JbnRlcnByZXRlclN0YXR1cy5SdW5uaW5nJiYhby5vcHRpb25zLmRlZmVyRXZlbnRzKXRocm93IG5ldyBFcnJvcignRXZlbnQgXCInLmNvbmNhdChyLm5hbWUsJ1wiIHdhcyBzZW50IHRvIHVuaW5pdGlhbGl6ZWQgc2VydmljZSBcIicpLmNvbmNhdChvLm1hY2hpbmUuaWQsJ1wiLiBNYWtlIHN1cmUgLnN0YXJ0KCkgaXMgY2FsbGVkIGZvciB0aGlzIHNlcnZpY2UsIG9yIHNldCB7IGRlZmVyRXZlbnRzOiB0cnVlIH0gaW4gdGhlIHNlcnZpY2Ugb3B0aW9ucy5cXG5FdmVudDogJykuY29uY2F0KEpTT04uc3RyaW5naWZ5KHIuZGF0YSkpKTtyZXR1cm4gby5zY2hlZHVsZXIuc2NoZWR1bGUoKGZ1bmN0aW9uKCl7by5mb3J3YXJkKHIpO3ZhciB0PW8ubmV4dFN0YXRlKHIpO28udXBkYXRlKHQscil9KSksby5fc3RhdGV9LHRoaXMuc2VuZFRvPWZ1bmN0aW9uKG4scil7dmFyIGksYT1vLnBhcmVudCYmKHI9PT10LlNwZWNpYWxUYXJnZXRzLlBhcmVudHx8by5wYXJlbnQuaWQ9PT1yKSxzPWE/by5wYXJlbnQ6QShyKT9vLmNoaWxkcmVuLmdldChyKXx8WHQocik6KGk9cikmJlwiZnVuY3Rpb25cIj09dHlwZW9mIGkuc2VuZD9yOnZvaWQgMDtpZihzKVwibWFjaGluZVwiaW4gcz9zLnNlbmQoZShlKHt9LG4pLHtuYW1lOm4ubmFtZT09PWF0P1wiXCIuY29uY2F0KEF0KG8uaWQpKTpuLm5hbWUsb3JpZ2luOm8uc2Vzc2lvbklkfSkpOnMuc2VuZChuLmRhdGEpO2Vsc2UgaWYoIWEpdGhyb3cgbmV3IEVycm9yKFwiVW5hYmxlIHRvIHNlbmQgZXZlbnQgdG8gY2hpbGQgJ1wiLmNvbmNhdChyLFwiJyBmcm9tIHNlcnZpY2UgJ1wiKS5jb25jYXQoby5pZCxcIicuXCIpKX07dmFyIGE9ZShlKHt9LG4uZGVmYXVsdE9wdGlvbnMpLGkpLHM9YS5jbG9jayxjPWEubG9nZ2VyLHU9YS5wYXJlbnQsaD1hLmlkLGY9dm9pZCAwIT09aD9oOnIuaWQ7dGhpcy5pZD1mLHRoaXMubG9nZ2VyPWMsdGhpcy5jbG9jaz1zLHRoaXMucGFyZW50PXUsdGhpcy5vcHRpb25zPWEsdGhpcy5zY2hlZHVsZXI9bmV3IFV0KHtkZWZlckV2ZW50czp0aGlzLm9wdGlvbnMuZGVmZXJFdmVudHN9KSx0aGlzLnNlc3Npb25JZD1xdCgpfXJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJpbml0aWFsU3RhdGVcIix7Z2V0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5faW5pdGlhbFN0YXRlP3RoaXMuX2luaXRpYWxTdGF0ZTpqdCh0aGlzLChmdW5jdGlvbigpe3JldHVybiB0Ll9pbml0aWFsU3RhdGU9dC5tYWNoaW5lLmluaXRpYWxTdGF0ZSx0Ll9pbml0aWFsU3RhdGV9KSl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwic3RhdGVcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0YXRlfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLG4ucHJvdG90eXBlLmV4ZWN1dGU9ZnVuY3Rpb24odCxlKXt2YXIgbixpO3RyeXtmb3IodmFyIG89cih0LmFjdGlvbnMpLGE9by5uZXh0KCk7IWEuZG9uZTthPW8ubmV4dCgpKXt2YXIgcz1hLnZhbHVlO3RoaXMuZXhlYyhzLHQsZSl9fWNhdGNoKHQpe249e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e2EmJiFhLmRvbmUmJihpPW8ucmV0dXJuKSYmaS5jYWxsKG8pfWZpbmFsbHl7aWYobil0aHJvdyBuLmVycm9yfX19LG4ucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbih0LGUpe3ZhciBuLGksbyxhLHMsYyx1LGgsZj10aGlzO2lmKHQuX3Nlc3Npb25pZD10aGlzLnNlc3Npb25JZCx0aGlzLl9zdGF0ZT10LHRoaXMub3B0aW9ucy5leGVjdXRlJiZ0aGlzLmV4ZWN1dGUodGhpcy5zdGF0ZSksdGhpcy5jaGlsZHJlbi5mb3JFYWNoKChmdW5jdGlvbih0KXtmLnN0YXRlLmNoaWxkcmVuW3QuaWRdPXR9KSksdGhpcy5kZXZUb29scyYmdGhpcy5kZXZUb29scy5zZW5kKGUuZGF0YSx0KSx0LmV2ZW50KXRyeXtmb3IodmFyIGw9cih0aGlzLmV2ZW50TGlzdGVuZXJzKSxkPWwubmV4dCgpOyFkLmRvbmU7ZD1sLm5leHQoKSl7KDAsZC52YWx1ZSkodC5ldmVudCl9fWNhdGNoKHQpe249e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e2QmJiFkLmRvbmUmJihpPWwucmV0dXJuKSYmaS5jYWxsKGwpfWZpbmFsbHl7aWYobil0aHJvdyBuLmVycm9yfX10cnl7Zm9yKHZhciBwPXIodGhpcy5saXN0ZW5lcnMpLHY9cC5uZXh0KCk7IXYuZG9uZTt2PXAubmV4dCgpKXsoMCx2LnZhbHVlKSh0LHQuZXZlbnQpfX1jYXRjaCh0KXtvPXtlcnJvcjp0fX1maW5hbGx5e3RyeXt2JiYhdi5kb25lJiYoYT1wLnJldHVybikmJmEuY2FsbChwKX1maW5hbGx5e2lmKG8pdGhyb3cgby5lcnJvcn19dHJ5e2Zvcih2YXIgeT1yKHRoaXMuY29udGV4dExpc3RlbmVycyksZz15Lm5leHQoKTshZy5kb25lO2c9eS5uZXh0KCkpeygwLGcudmFsdWUpKHRoaXMuc3RhdGUuY29udGV4dCx0aGlzLnN0YXRlLmhpc3Rvcnk/dGhpcy5zdGF0ZS5oaXN0b3J5LmNvbnRleHQ6dm9pZCAwKX19Y2F0Y2godCl7cz17ZXJyb3I6dH19ZmluYWxseXt0cnl7ZyYmIWcuZG9uZSYmKGM9eS5yZXR1cm4pJiZjLmNhbGwoeSl9ZmluYWxseXtpZihzKXRocm93IHMuZXJyb3J9fXZhciBtPUgodC5jb25maWd1cmF0aW9ufHxbXSx0aGlzLm1hY2hpbmUpO2lmKHRoaXMuc3RhdGUuY29uZmlndXJhdGlvbiYmbSl7dmFyIFM9dC5jb25maWd1cmF0aW9uLmZpbmQoKGZ1bmN0aW9uKHQpe3JldHVyblwiZmluYWxcIj09PXQudHlwZSYmdC5wYXJlbnQ9PT1mLm1hY2hpbmV9KSksdz1TJiZTLmRvbmVEYXRhP3goUy5kb25lRGF0YSx0LmNvbnRleHQsZSk6dm9pZCAwO3RyeXtmb3IodmFyIGI9cih0aGlzLmRvbmVMaXN0ZW5lcnMpLF89Yi5uZXh0KCk7IV8uZG9uZTtfPWIubmV4dCgpKXsoMCxfLnZhbHVlKShOdCh0aGlzLmlkLHcpKX19Y2F0Y2godCl7dT17ZXJyb3I6dH19ZmluYWxseXt0cnl7XyYmIV8uZG9uZSYmKGg9Yi5yZXR1cm4pJiZoLmNhbGwoYil9ZmluYWxseXtpZih1KXRocm93IHUuZXJyb3J9fXRoaXMuc3RvcCgpfX0sbi5wcm90b3R5cGUub25UcmFuc2l0aW9uPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmxpc3RlbmVycy5hZGQoZSksdGhpcy5zdGF0dXM9PT10LkludGVycHJldGVyU3RhdHVzLlJ1bm5pbmcmJmUodGhpcy5zdGF0ZSx0aGlzLnN0YXRlLmV2ZW50KSx0aGlzfSxuLnByb3RvdHlwZS5zdWJzY3JpYmU9ZnVuY3Rpb24oZSxuLHIpe3ZhciBpLG89dGhpcztpZighZSlyZXR1cm57dW5zdWJzY3JpYmU6ZnVuY3Rpb24oKXt9fTt2YXIgYT1yO3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIGU/aT1lOihpPWUubmV4dC5iaW5kKGUpLGE9ZS5jb21wbGV0ZS5iaW5kKGUpKSx0aGlzLmxpc3RlbmVycy5hZGQoaSksdGhpcy5zdGF0dXM9PT10LkludGVycHJldGVyU3RhdHVzLlJ1bm5pbmcmJmkodGhpcy5zdGF0ZSksYSYmdGhpcy5vbkRvbmUoYSkse3Vuc3Vic2NyaWJlOmZ1bmN0aW9uKCl7aSYmby5saXN0ZW5lcnMuZGVsZXRlKGkpLGEmJm8uZG9uZUxpc3RlbmVycy5kZWxldGUoYSl9fX0sbi5wcm90b3R5cGUub25FdmVudD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5ldmVudExpc3RlbmVycy5hZGQodCksdGhpc30sbi5wcm90b3R5cGUub25TZW5kPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnNlbmRMaXN0ZW5lcnMuYWRkKHQpLHRoaXN9LG4ucHJvdG90eXBlLm9uQ2hhbmdlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNvbnRleHRMaXN0ZW5lcnMuYWRkKHQpLHRoaXN9LG4ucHJvdG90eXBlLm9uU3RvcD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5zdG9wTGlzdGVuZXJzLmFkZCh0KSx0aGlzfSxuLnByb3RvdHlwZS5vbkRvbmU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZG9uZUxpc3RlbmVycy5hZGQodCksdGhpc30sbi5wcm90b3R5cGUub2ZmPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmxpc3RlbmVycy5kZWxldGUodCksdGhpcy5ldmVudExpc3RlbmVycy5kZWxldGUodCksdGhpcy5zZW5kTGlzdGVuZXJzLmRlbGV0ZSh0KSx0aGlzLnN0b3BMaXN0ZW5lcnMuZGVsZXRlKHQpLHRoaXMuZG9uZUxpc3RlbmVycy5kZWxldGUodCksdGhpcy5jb250ZXh0TGlzdGVuZXJzLmRlbGV0ZSh0KSx0aGlzfSxuLnByb3RvdHlwZS5zdGFydD1mdW5jdGlvbihlKXt2YXIgbj10aGlzO2lmKHRoaXMuc3RhdHVzPT09dC5JbnRlcnByZXRlclN0YXR1cy5SdW5uaW5nKXJldHVybiB0aGlzOyR0KHRoaXMuc2Vzc2lvbklkLHRoaXMpLHRoaXMuaW5pdGlhbGl6ZWQ9ITAsdGhpcy5zdGF0dXM9dC5JbnRlcnByZXRlclN0YXR1cy5SdW5uaW5nO3ZhciByPXZvaWQgMD09PWU/dGhpcy5pbml0aWFsU3RhdGU6anQodGhpcywoZnVuY3Rpb24oKXtyZXR1cm4hQSh0PWUpJiZcInZhbHVlXCJpbiB0JiZcImhpc3RvcnlcImluIHQ/bi5tYWNoaW5lLnJlc29sdmVTdGF0ZShlKTpuLm1hY2hpbmUucmVzb2x2ZVN0YXRlKGt0LmZyb20oZSxuLm1hY2hpbmUuY29udGV4dCkpO3ZhciB0fSkpO3JldHVybiB0aGlzLm9wdGlvbnMuZGV2VG9vbHMmJnRoaXMuYXR0YWNoRGV2KCksdGhpcy5zY2hlZHVsZXIuaW5pdGlhbGl6ZSgoZnVuY3Rpb24oKXtuLnVwZGF0ZShyLGh0KX0pKSx0aGlzfSxuLnByb3RvdHlwZS5zdG9wPWZ1bmN0aW9uKCl7dmFyIGUsbixpLG8sYSxjLHUsaCxmLGwsZD10aGlzO3RyeXtmb3IodmFyIHA9cih0aGlzLmxpc3RlbmVycyksdj1wLm5leHQoKTshdi5kb25lO3Y9cC5uZXh0KCkpe3ZhciB5PXYudmFsdWU7dGhpcy5saXN0ZW5lcnMuZGVsZXRlKHkpfX1jYXRjaCh0KXtlPXtlcnJvcjp0fX1maW5hbGx5e3RyeXt2JiYhdi5kb25lJiYobj1wLnJldHVybikmJm4uY2FsbChwKX1maW5hbGx5e2lmKGUpdGhyb3cgZS5lcnJvcn19dHJ5e2Zvcih2YXIgZz1yKHRoaXMuc3RvcExpc3RlbmVycyksbT1nLm5leHQoKTshbS5kb25lO209Zy5uZXh0KCkpeyh5PW0udmFsdWUpKCksdGhpcy5zdG9wTGlzdGVuZXJzLmRlbGV0ZSh5KX19Y2F0Y2godCl7aT17ZXJyb3I6dH19ZmluYWxseXt0cnl7bSYmIW0uZG9uZSYmKG89Zy5yZXR1cm4pJiZvLmNhbGwoZyl9ZmluYWxseXtpZihpKXRocm93IGkuZXJyb3J9fXRyeXtmb3IodmFyIFM9cih0aGlzLmNvbnRleHRMaXN0ZW5lcnMpLHg9Uy5uZXh0KCk7IXguZG9uZTt4PVMubmV4dCgpKXt5PXgudmFsdWU7dGhpcy5jb250ZXh0TGlzdGVuZXJzLmRlbGV0ZSh5KX19Y2F0Y2godCl7YT17ZXJyb3I6dH19ZmluYWxseXt0cnl7eCYmIXguZG9uZSYmKGM9Uy5yZXR1cm4pJiZjLmNhbGwoUyl9ZmluYWxseXtpZihhKXRocm93IGEuZXJyb3J9fXRyeXtmb3IodmFyIHc9cih0aGlzLmRvbmVMaXN0ZW5lcnMpLGI9dy5uZXh0KCk7IWIuZG9uZTtiPXcubmV4dCgpKXt5PWIudmFsdWU7dGhpcy5kb25lTGlzdGVuZXJzLmRlbGV0ZSh5KX19Y2F0Y2godCl7dT17ZXJyb3I6dH19ZmluYWxseXt0cnl7YiYmIWIuZG9uZSYmKGg9dy5yZXR1cm4pJiZoLmNhbGwodyl9ZmluYWxseXtpZih1KXRocm93IHUuZXJyb3J9fWlmKCF0aGlzLmluaXRpYWxpemVkKXJldHVybiB0aGlzO3RoaXMuc3RhdGUuY29uZmlndXJhdGlvbi5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZSxuO3RyeXtmb3IodmFyIGk9cih0LmRlZmluaXRpb24uZXhpdCksbz1pLm5leHQoKTshby5kb25lO289aS5uZXh0KCkpe3ZhciBhPW8udmFsdWU7ZC5leGVjKGEsZC5zdGF0ZSl9fWNhdGNoKHQpe2U9e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e28mJiFvLmRvbmUmJihuPWkucmV0dXJuKSYmbi5jYWxsKGkpfWZpbmFsbHl7aWYoZSl0aHJvdyBlLmVycm9yfX19KSksdGhpcy5jaGlsZHJlbi5mb3JFYWNoKChmdW5jdGlvbih0KXtOKHQuc3RvcCkmJnQuc3RvcCgpfSkpO3RyeXtmb3IodmFyIF89cihzKHRoaXMuZGVsYXllZEV2ZW50c01hcCkpLEU9Xy5uZXh0KCk7IUUuZG9uZTtFPV8ubmV4dCgpKXt2YXIgVD1FLnZhbHVlO3RoaXMuY2xvY2suY2xlYXJUaW1lb3V0KHRoaXMuZGVsYXllZEV2ZW50c01hcFtUXSl9fWNhdGNoKHQpe2Y9e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e0UmJiFFLmRvbmUmJihsPV8ucmV0dXJuKSYmbC5jYWxsKF8pfWZpbmFsbHl7aWYoZil0aHJvdyBmLmVycm9yfX1yZXR1cm4gdGhpcy5zY2hlZHVsZXIuY2xlYXIoKSx0aGlzLmluaXRpYWxpemVkPSExLHRoaXMuc3RhdHVzPXQuSW50ZXJwcmV0ZXJTdGF0dXMuU3RvcHBlZCxIdCh0aGlzLnNlc3Npb25JZCksdGhpc30sbi5wcm90b3R5cGUuYmF0Y2g9ZnVuY3Rpb24obil7dmFyIGE9dGhpcztpZih0aGlzLnN0YXR1cz09PXQuSW50ZXJwcmV0ZXJTdGF0dXMuTm90U3RhcnRlZCYmdGhpcy5vcHRpb25zLmRlZmVyRXZlbnRzKTtlbHNlIGlmKHRoaXMuc3RhdHVzIT09dC5JbnRlcnByZXRlclN0YXR1cy5SdW5uaW5nKXRocm93IG5ldyBFcnJvcihcIlwiLmNvbmNhdChuLmxlbmd0aCwnIGV2ZW50KHMpIHdlcmUgc2VudCB0byB1bmluaXRpYWxpemVkIHNlcnZpY2UgXCInKS5jb25jYXQodGhpcy5tYWNoaW5lLmlkLCdcIi4gTWFrZSBzdXJlIC5zdGFydCgpIGlzIGNhbGxlZCBmb3IgdGhpcyBzZXJ2aWNlLCBvciBzZXQgeyBkZWZlckV2ZW50czogdHJ1ZSB9IGluIHRoZSBzZXJ2aWNlIG9wdGlvbnMuJykpO3RoaXMuc2NoZWR1bGVyLnNjaGVkdWxlKChmdW5jdGlvbigpe3ZhciB0LHMsYz1hLnN0YXRlLHU9ITEsaD1bXSxmPWZ1bmN0aW9uKHQpe3ZhciBuPUwodCk7YS5mb3J3YXJkKG4pLGM9anQoYSwoZnVuY3Rpb24oKXtyZXR1cm4gYS5tYWNoaW5lLnRyYW5zaXRpb24oYyxuKX0pKSxoLnB1c2guYXBwbHkoaCxvKFtdLGkoYy5hY3Rpb25zLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHI9YyxpPShuPXQpLmV4ZWMsZShlKHt9LG4pLHtleGVjOnZvaWQgMCE9PWk/ZnVuY3Rpb24oKXtyZXR1cm4gaShyLmNvbnRleHQsci5ldmVudCx7YWN0aW9uOm4sc3RhdGU6cixfZXZlbnQ6ci5fZXZlbnR9KX06dm9pZCAwfSk7dmFyIG4scixpfSkpKSwhMSkpLHU9dXx8ISFjLmNoYW5nZWR9O3RyeXtmb3IodmFyIGw9cihuKSxkPWwubmV4dCgpOyFkLmRvbmU7ZD1sLm5leHQoKSl7ZihkLnZhbHVlKX19Y2F0Y2goZSl7dD17ZXJyb3I6ZX19ZmluYWxseXt0cnl7ZCYmIWQuZG9uZSYmKHM9bC5yZXR1cm4pJiZzLmNhbGwobCl9ZmluYWxseXtpZih0KXRocm93IHQuZXJyb3J9fWMuY2hhbmdlZD11LGMuYWN0aW9ucz1oLGEudXBkYXRlKGMsTChuW24ubGVuZ3RoLTFdKSl9KSl9LG4ucHJvdG90eXBlLnNlbmRlcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5zZW5kLmJpbmQodGhpcyx0KX0sbi5wcm90b3R5cGUubmV4dFN0YXRlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj1MKHQpO2lmKDA9PT1uLm5hbWUuaW5kZXhPZihvdCkmJiF0aGlzLnN0YXRlLm5leHRFdmVudHMuc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuIDA9PT10LmluZGV4T2Yob3QpfSkpKXRocm93IG4uZGF0YS5kYXRhO3JldHVybiBqdCh0aGlzLChmdW5jdGlvbigpe3JldHVybiBlLm1hY2hpbmUudHJhbnNpdGlvbihlLnN0YXRlLG4pfSkpfSxuLnByb3RvdHlwZS5mb3J3YXJkPWZ1bmN0aW9uKHQpe3ZhciBlLG47dHJ5e2Zvcih2YXIgaT1yKHRoaXMuZm9yd2FyZFRvKSxvPWkubmV4dCgpOyFvLmRvbmU7bz1pLm5leHQoKSl7dmFyIGE9by52YWx1ZSxzPXRoaXMuY2hpbGRyZW4uZ2V0KGEpO2lmKCFzKXRocm93IG5ldyBFcnJvcihcIlVuYWJsZSB0byBmb3J3YXJkIGV2ZW50ICdcIi5jb25jYXQodCxcIicgZnJvbSBpbnRlcnByZXRlciAnXCIpLmNvbmNhdCh0aGlzLmlkLFwiJyB0byBub25leGlzdGFudCBjaGlsZCAnXCIpLmNvbmNhdChhLFwiJy5cIikpO3Muc2VuZCh0KX19Y2F0Y2godCl7ZT17ZXJyb3I6dH19ZmluYWxseXt0cnl7byYmIW8uZG9uZSYmKG49aS5yZXR1cm4pJiZuLmNhbGwoaSl9ZmluYWxseXtpZihlKXRocm93IGUuZXJyb3J9fX0sbi5wcm90b3R5cGUuZGVmZXI9ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLmRlbGF5ZWRFdmVudHNNYXBbdC5pZF09dGhpcy5jbG9jay5zZXRUaW1lb3V0KChmdW5jdGlvbigpe3QudG8/ZS5zZW5kVG8odC5fZXZlbnQsdC50byk6ZS5zZW5kKHQuX2V2ZW50KX0pLHQuZGVsYXkpfSxuLnByb3RvdHlwZS5jYW5jZWw9ZnVuY3Rpb24odCl7dGhpcy5jbG9jay5jbGVhclRpbWVvdXQodGhpcy5kZWxheWVkRXZlbnRzTWFwW3RdKSxkZWxldGUgdGhpcy5kZWxheWVkRXZlbnRzTWFwW3RdfSxuLnByb3RvdHlwZS5leGVjPWZ1bmN0aW9uKGUsbixyKXt2b2lkIDA9PT1yJiYocj10aGlzLm1hY2hpbmUub3B0aW9ucy5hY3Rpb25zKTt2YXIgaT1uLmNvbnRleHQsbz1uLl9ldmVudCxhPWUuZXhlY3x8ZnQoZS50eXBlLHIpLHM9TihhKT9hOmE/YS5leGVjOmUuZXhlYztpZihzKXRyeXtyZXR1cm4gcyhpLG8uZGF0YSx7YWN0aW9uOmUsc3RhdGU6dGhpcy5zdGF0ZSxfZXZlbnQ6b30pfWNhdGNoKHQpe3Rocm93IHRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5zZW5kKHt0eXBlOlwieHN0YXRlLmVycm9yXCIsZGF0YTp0fSksdH1zd2l0Y2goZS50eXBlKXtjYXNlIFk6dmFyIGM9ZTtpZihcIm51bWJlclwiPT10eXBlb2YgYy5kZWxheSlyZXR1cm4gdm9pZCB0aGlzLmRlZmVyKGMpO2MudG8/dGhpcy5zZW5kVG8oYy5fZXZlbnQsYy50byk6dGhpcy5zZW5kKGMuX2V2ZW50KTticmVhaztjYXNlIFo6dGhpcy5jYW5jZWwoZS5zZW5kSWQpO2JyZWFrO2Nhc2UgSzp2YXIgdT1lLmFjdGl2aXR5O2lmKCF0aGlzLnN0YXRlLmFjdGl2aXRpZXNbdS5pZHx8dS50eXBlXSlicmVhaztpZih1LnR5cGU9PT10LkFjdGlvblR5cGVzLkludm9rZSl7dmFyIGg9TSh1LnNyYyksZj10aGlzLm1hY2hpbmUub3B0aW9ucy5zZXJ2aWNlcz90aGlzLm1hY2hpbmUub3B0aW9ucy5zZXJ2aWNlc1toLnR5cGVdOnZvaWQgMCxsPXUuaWQsZD11LmRhdGEscD1cImF1dG9Gb3J3YXJkXCJpbiB1P3UuYXV0b0ZvcndhcmQ6ISF1LmZvcndhcmQ7aWYoIWYpcmV0dXJuO3ZhciB2PWQ/eChkLGksbyk6dm9pZCAwO2lmKFwic3RyaW5nXCI9PXR5cGVvZiBmKXJldHVybjt2YXIgeT1OKGYpP2YoaSxvLmRhdGEse2RhdGE6dixzcmM6aCxtZXRhOnUubWV0YX0pOmY7aWYoIXkpcmV0dXJuO3ZhciBnPXZvaWQgMDtrKHkpJiYoeT12P3kud2l0aENvbnRleHQodik6eSxnPXthdXRvRm9yd2FyZDpwfSksdGhpcy5zcGF3bih5LGwsZyl9ZWxzZSB0aGlzLnNwYXduQWN0aXZpdHkodSk7YnJlYWs7Y2FzZSBROnRoaXMuc3RvcENoaWxkKGUuYWN0aXZpdHkuaWQpO2JyZWFrO2Nhc2UgbnQ6dmFyIG09ZS5sYWJlbCxTPWUudmFsdWU7bT90aGlzLmxvZ2dlcihtLFMpOnRoaXMubG9nZ2VyKFMpfX0sbi5wcm90b3R5cGUucmVtb3ZlQ2hpbGQ9ZnVuY3Rpb24odCl7dmFyIGU7dGhpcy5jaGlsZHJlbi5kZWxldGUodCksdGhpcy5mb3J3YXJkVG8uZGVsZXRlKHQpLG51bGw9PT0oZT10aGlzLnN0YXRlKXx8dm9pZCAwPT09ZXx8ZGVsZXRlIGUuY2hpbGRyZW5bdF19LG4ucHJvdG90eXBlLnN0b3BDaGlsZD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmNoaWxkcmVuLmdldCh0KTtlJiYodGhpcy5yZW1vdmVDaGlsZCh0KSxOKGUuc3RvcCkmJmUuc3RvcCgpKX0sbi5wcm90b3R5cGUuc3Bhd249ZnVuY3Rpb24odCxuLHIpe2lmKHcodCkpcmV0dXJuIHRoaXMuc3Bhd25Qcm9taXNlKFByb21pc2UucmVzb2x2ZSh0KSxuKTtpZihOKHQpKXJldHVybiB0aGlzLnNwYXduQ2FsbGJhY2sodCxuKTtpZihmdW5jdGlvbih0KXt0cnl7cmV0dXJuXCJmdW5jdGlvblwiPT10eXBlb2YgdC5zZW5kfWNhdGNoKHQpe3JldHVybiExfX0obz10KSYmXCJpZFwiaW4gbylyZXR1cm4gdGhpcy5zcGF3bkFjdG9yKHQsbik7aWYoZnVuY3Rpb24odCl7dHJ5e3JldHVyblwic3Vic2NyaWJlXCJpbiB0JiZOKHQuc3Vic2NyaWJlKX1jYXRjaCh0KXtyZXR1cm4hMX19KHQpKXJldHVybiB0aGlzLnNwYXduT2JzZXJ2YWJsZSh0LG4pO2lmKGsodCkpcmV0dXJuIHRoaXMuc3Bhd25NYWNoaW5lKHQsZShlKHt9LHIpLHtpZDpufSkpO2lmKG51bGwhPT0oaT10KSYmXCJvYmplY3RcIj09dHlwZW9mIGkmJlwidHJhbnNpdGlvblwiaW4gaSYmXCJmdW5jdGlvblwiPT10eXBlb2YgaS50cmFuc2l0aW9uKXJldHVybiB0aGlzLnNwYXduQmVoYXZpb3IodCxuKTt0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byBzcGF3biBlbnRpdHkgXCInLmNvbmNhdChuLCdcIiBvZiB0eXBlIFwiJykuY29uY2F0KHR5cGVvZiB0LCdcIi4nKSk7dmFyIGksb30sbi5wcm90b3R5cGUuc3Bhd25NYWNoaW5lPWZ1bmN0aW9uKHQscil7dmFyIGk9dGhpczt2b2lkIDA9PT1yJiYocj17fSk7dmFyIG89bmV3IG4odCxlKGUoe30sdGhpcy5vcHRpb25zKSx7cGFyZW50OnRoaXMsaWQ6ci5pZHx8dC5pZH0pKSxhPWUoZSh7fSxZdCkscik7YS5zeW5jJiZvLm9uVHJhbnNpdGlvbigoZnVuY3Rpb24odCl7aS5zZW5kKHN0LHtzdGF0ZTp0LGlkOm8uaWR9KX0pKTt2YXIgcz1vO3JldHVybiB0aGlzLmNoaWxkcmVuLnNldChvLmlkLHMpLGEuYXV0b0ZvcndhcmQmJnRoaXMuZm9yd2FyZFRvLmFkZChvLmlkKSxvLm9uRG9uZSgoZnVuY3Rpb24odCl7aS5yZW1vdmVDaGlsZChvLmlkKSxpLnNlbmQoTCh0LHtvcmlnaW46by5pZH0pKX0pKS5zdGFydCgpLHN9LG4ucHJvdG90eXBlLnNwYXduQmVoYXZpb3I9ZnVuY3Rpb24odCxlKXt2YXIgbj1RdCh0LHtpZDplLHBhcmVudDp0aGlzfSk7cmV0dXJuIHRoaXMuY2hpbGRyZW4uc2V0KGUsbiksbn0sbi5wcm90b3R5cGUuc3Bhd25Qcm9taXNlPWZ1bmN0aW9uKHQsZSl7dmFyIG4scj10aGlzLGk9ITE7dC50aGVuKChmdW5jdGlvbih0KXtpfHwobj10LHIucmVtb3ZlQ2hpbGQoZSksci5zZW5kKEwoTnQoZSx0KSx7b3JpZ2luOmV9KSkpfSksKGZ1bmN0aW9uKHQpe2lmKCFpKXtyLnJlbW92ZUNoaWxkKGUpO3ZhciBuPUF0KGUsdCk7dHJ5e3Iuc2VuZChMKG4se29yaWdpbjplfSkpfWNhdGNoKHQpe3IuZGV2VG9vbHMmJnIuZGV2VG9vbHMuc2VuZChuLHIuc3RhdGUpLHIubWFjaGluZS5zdHJpY3QmJnIuc3RvcCgpfX19KSk7dmFyIG89e2lkOmUsc2VuZDpmdW5jdGlvbigpe30sc3Vic2NyaWJlOmZ1bmN0aW9uKGUsbixyKXt2YXIgaT16KGUsbixyKSxvPSExO3JldHVybiB0LnRoZW4oKGZ1bmN0aW9uKHQpe298fChpLm5leHQodCksb3x8aS5jb21wbGV0ZSgpKX0pLChmdW5jdGlvbih0KXtvfHxpLmVycm9yKHQpfSkpLHt1bnN1YnNjcmliZTpmdW5jdGlvbigpe3JldHVybiBvPSEwfX19LHN0b3A6ZnVuY3Rpb24oKXtpPSEwfSx0b0pTT046ZnVuY3Rpb24oKXtyZXR1cm57aWQ6ZX19LGdldFNuYXBzaG90OmZ1bmN0aW9uKCl7cmV0dXJuIG59fTtyZXR1cm4gdGhpcy5jaGlsZHJlbi5zZXQoZSxvKSxvfSxuLnByb3RvdHlwZS5zcGF3bkNhbGxiYWNrPWZ1bmN0aW9uKHQsZSl7dmFyIG4scixpPXRoaXMsbz0hMSxhPW5ldyBTZXQscz1uZXcgU2V0O3RyeXtyPXQoKGZ1bmN0aW9uKHQpe249dCxzLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JldHVybiBlKHQpfSkpLG98fGkuc2VuZChMKHQse29yaWdpbjplfSkpfSksKGZ1bmN0aW9uKHQpe2EuYWRkKHQpfSkpfWNhdGNoKHQpe3RoaXMuc2VuZChBdChlLHQpKX1pZih3KHIpKXJldHVybiB0aGlzLnNwYXduUHJvbWlzZShyLGUpO3ZhciBjPXtpZDplLHNlbmQ6ZnVuY3Rpb24odCl7cmV0dXJuIGEuZm9yRWFjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUodCl9KSl9LHN1YnNjcmliZTpmdW5jdGlvbih0KXtyZXR1cm4gcy5hZGQodCkse3Vuc3Vic2NyaWJlOmZ1bmN0aW9uKCl7cy5kZWxldGUodCl9fX0sc3RvcDpmdW5jdGlvbigpe289ITAsTihyKSYmcigpfSx0b0pTT046ZnVuY3Rpb24oKXtyZXR1cm57aWQ6ZX19LGdldFNuYXBzaG90OmZ1bmN0aW9uKCl7cmV0dXJuIG59fTtyZXR1cm4gdGhpcy5jaGlsZHJlbi5zZXQoZSxjKSxjfSxuLnByb3RvdHlwZS5zcGF3bk9ic2VydmFibGU9ZnVuY3Rpb24odCxlKXt2YXIgbixyPXRoaXMsaT10LnN1YnNjcmliZSgoZnVuY3Rpb24odCl7bj10LHIuc2VuZChMKHQse29yaWdpbjplfSkpfSksKGZ1bmN0aW9uKHQpe3IucmVtb3ZlQ2hpbGQoZSksci5zZW5kKEwoQXQoZSx0KSx7b3JpZ2luOmV9KSl9KSwoZnVuY3Rpb24oKXtyLnJlbW92ZUNoaWxkKGUpLHIuc2VuZChMKE50KGUpLHtvcmlnaW46ZX0pKX0pKSxvPXtpZDplLHNlbmQ6ZnVuY3Rpb24oKXt9LHN1YnNjcmliZTpmdW5jdGlvbihlLG4scil7cmV0dXJuIHQuc3Vic2NyaWJlKGUsbixyKX0sc3RvcDpmdW5jdGlvbigpe3JldHVybiBpLnVuc3Vic2NyaWJlKCl9LGdldFNuYXBzaG90OmZ1bmN0aW9uKCl7cmV0dXJuIG59LHRvSlNPTjpmdW5jdGlvbigpe3JldHVybntpZDplfX19O3JldHVybiB0aGlzLmNoaWxkcmVuLnNldChlLG8pLG99LG4ucHJvdG90eXBlLnNwYXduQWN0b3I9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5jaGlsZHJlbi5zZXQoZSx0KSx0fSxuLnByb3RvdHlwZS5zcGF3bkFjdGl2aXR5PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMubWFjaGluZS5vcHRpb25zJiZ0aGlzLm1hY2hpbmUub3B0aW9ucy5hY3Rpdml0aWVzP3RoaXMubWFjaGluZS5vcHRpb25zLmFjdGl2aXRpZXNbdC50eXBlXTp2b2lkIDA7aWYoZSl7dmFyIG49ZSh0aGlzLnN0YXRlLmNvbnRleHQsdCk7dGhpcy5zcGF3bkVmZmVjdCh0LmlkLG4pfX0sbi5wcm90b3R5cGUuc3Bhd25FZmZlY3Q9ZnVuY3Rpb24odCxlKXt0aGlzLmNoaWxkcmVuLnNldCh0LHtpZDp0LHNlbmQ6ZnVuY3Rpb24oKXt9LHN1YnNjcmliZTpmdW5jdGlvbigpe3JldHVybnt1bnN1YnNjcmliZTpmdW5jdGlvbigpe319fSxzdG9wOmV8fHZvaWQgMCxnZXRTbmFwc2hvdDpmdW5jdGlvbigpe30sdG9KU09OOmZ1bmN0aW9uKCl7cmV0dXJue2lkOnR9fX0pfSxuLnByb3RvdHlwZS5hdHRhY2hEZXY9ZnVuY3Rpb24oKXt2YXIgdD1HdCgpO2lmKHRoaXMub3B0aW9ucy5kZXZUb29scyYmdCl7aWYodC5fX1JFRFVYX0RFVlRPT0xTX0VYVEVOU0lPTl9fKXt2YXIgbj1cIm9iamVjdFwiPT10eXBlb2YgdGhpcy5vcHRpb25zLmRldlRvb2xzP3RoaXMub3B0aW9ucy5kZXZUb29sczp2b2lkIDA7dGhpcy5kZXZUb29scz10Ll9fUkVEVVhfREVWVE9PTFNfRVhURU5TSU9OX18uY29ubmVjdChlKGUoe25hbWU6dGhpcy5pZCxhdXRvUGF1c2U6ITAsc3RhdGVTYW5pdGl6ZXI6ZnVuY3Rpb24odCl7cmV0dXJue3ZhbHVlOnQudmFsdWUsY29udGV4dDp0LmNvbnRleHQsYWN0aW9uczp0LmFjdGlvbnN9fX0sbikse2ZlYXR1cmVzOmUoe2p1bXA6ITEsc2tpcDohMX0sbj9uLmZlYXR1cmVzOnZvaWQgMCl9KSx0aGlzLm1hY2hpbmUpLHRoaXMuZGV2VG9vbHMuaW5pdCh0aGlzLnN0YXRlKX1LdCh0aGlzKX19LG4ucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybntpZDp0aGlzLmlkfX0sbi5wcm90b3R5cGVbUF09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sbi5wcm90b3R5cGUuZ2V0U25hcHNob3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zdGF0dXM9PT10LkludGVycHJldGVyU3RhdHVzLk5vdFN0YXJ0ZWQ/dGhpcy5pbml0aWFsU3RhdGU6dGhpcy5fc3RhdGV9LG4uZGVmYXVsdE9wdGlvbnM9ZnVuY3Rpb24odCl7cmV0dXJue2V4ZWN1dGU6ITAsZGVmZXJFdmVudHM6ITAsY2xvY2s6e3NldFRpbWVvdXQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gc2V0VGltZW91dCh0LGUpfSxjbGVhclRpbWVvdXQ6ZnVuY3Rpb24odCl7cmV0dXJuIGNsZWFyVGltZW91dCh0KX19LGxvZ2dlcjp0LmNvbnNvbGUubG9nLmJpbmQoY29uc29sZSksZGV2VG9vbHM6ITF9fShcInVuZGVmaW5lZFwiIT10eXBlb2Ygc2VsZj9zZWxmOmdsb2JhbCksbi5pbnRlcnByZXQ9dGUsbn0oKTtmdW5jdGlvbiB0ZSh0LGUpe3JldHVybiBuZXcgWnQodCxlKX12YXIgZWU9e3JhaXNlOnZ0LHNlbmQ6eXQsc2VuZFBhcmVudDpndCxzZW5kVXBkYXRlOm10LGxvZzpmdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT10JiYodD1TdCkse3R5cGU6bnQsbGFiZWw6ZSxleHByOnR9fSxjYW5jZWw6eHQsc3RhcnQ6d3Qsc3RvcDpidCxhc3NpZ246X3QsYWZ0ZXI6RXQsZG9uZTpUdCxyZXNwb25kOmZ1bmN0aW9uKHQsbil7cmV0dXJuIHl0KHQsZShlKHt9LG4pLHt0bzpmdW5jdGlvbih0LGUsbil7cmV0dXJuIG4uX2V2ZW50Lm9yaWdpbn19KSl9LGZvcndhcmRUbzpPdCxlc2NhbGF0ZTpmdW5jdGlvbihuLHIpe3JldHVybiBndCgoZnVuY3Rpb24odCxlLHIpe3JldHVybnt0eXBlOmF0LGRhdGE6TihuKT9uKHQsZSxyKTpufX0pLGUoZSh7fSxyKSx7dG86dC5TcGVjaWFsVGFyZ2V0cy5QYXJlbnR9KSl9LGNob29zZTpmdW5jdGlvbihlKXtyZXR1cm57dHlwZTp0LkFjdGlvblR5cGVzLkNob29zZSxjb25kczplfX0scHVyZTpmdW5jdGlvbihlKXtyZXR1cm57dHlwZTp0LkFjdGlvblR5cGVzLlB1cmUsZ2V0OmV9fX07dC5JbnRlcnByZXRlcj1adCx0Lk1hY2hpbmU9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB2b2lkIDA9PT1uJiYobj10LmNvbnRleHQpLG5ldyB6dCh0LGUsbil9LHQuU3RhdGU9a3QsdC5TdGF0ZU5vZGU9enQsdC5hY3Rpb25zPWVlLHQuYXNzaWduPV90LHQuY3JlYXRlTWFjaGluZT1mdW5jdGlvbih0LGUpe3JldHVybiBuZXcgenQodCxlKX0sdC5jcmVhdGVTY2hlbWE9ZnVuY3Rpb24odCl7cmV0dXJuIHR9LHQuZG9uZUludm9rZT1OdCx0LmZvcndhcmRUbz1PdCx0LmludGVycHJldD10ZSx0Lm1hcFN0YXRlPWZ1bmN0aW9uKHQsZSl7dmFyIG4saSxvO3RyeXtmb3IodmFyIGE9cihzKHQpKSx1PWEubmV4dCgpOyF1LmRvbmU7dT1hLm5leHQoKSl7dmFyIGg9dS52YWx1ZTtjKGgsZSkmJighb3x8ZS5sZW5ndGg+by5sZW5ndGgpJiYobz1oKX19Y2F0Y2godCl7bj17ZXJyb3I6dH19ZmluYWxseXt0cnl7dSYmIXUuZG9uZSYmKGk9YS5yZXR1cm4pJiZpLmNhbGwoYSl9ZmluYWxseXtpZihuKXRocm93IG4uZXJyb3J9fXJldHVybiB0W29dfSx0Lm1hdGNoU3RhdGU9ZnVuY3Rpb24odCxlLG4pe3ZhciBvLGEscz1rdC5mcm9tKHQsdCBpbnN0YW5jZW9mIGt0P3QuY29udGV4dDp2b2lkIDApO3RyeXtmb3IodmFyIGM9cihlKSx1PWMubmV4dCgpOyF1LmRvbmU7dT1jLm5leHQoKSl7dmFyIGg9aSh1LnZhbHVlLDIpLGY9aFswXSxsPWhbMV07aWYocy5tYXRjaGVzKGYpKXJldHVybiBsKHMpfX1jYXRjaCh0KXtvPXtlcnJvcjp0fX1maW5hbGx5e3RyeXt1JiYhdS5kb25lJiYoYT1jLnJldHVybikmJmEuY2FsbChjKX1maW5hbGx5e2lmKG8pdGhyb3cgby5lcnJvcn19cmV0dXJuIG4ocyl9LHQubWF0Y2hlc1N0YXRlPWMsdC5zZW5kPXl0LHQuc2VuZFBhcmVudD1ndCx0LnNlbmRVcGRhdGU9bXQsdC5zcGF3bj1mdW5jdGlvbih0LG4pe3ZhciByPWZ1bmN0aW9uKHQpe3JldHVybiBBKHQpP2UoZSh7fSxZdCkse25hbWU6dH0pOmUoZShlKHt9LFl0KSx7bmFtZTpDKCl9KSx0KX0obik7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBlP2Uuc3Bhd24odCxyLm5hbWUscik6VnQodCxyLm5hbWUpfShJdFtJdC5sZW5ndGgtMV0pfSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KX0pKTtcbiJdfQ== +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0cy9PUDE1L3NjcmlwdC9kZWZhdWx0RGF0YS5qcyJdLCJuYW1lcyI6WyJkZWZhdWx0RGF0YSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFPLElBQU1BLFdBQVcsR0FBRztBQUN2QjtBQUNBLGlCQUFlLDRFQUZRO0FBR3ZCLG1CQUFpQixvRUFITTtBQUl2QixlQUFhLDRFQUpVO0FBS3ZCLFlBQVU7QUFDTixXQUFPLG9FQUREO0FBRU4sWUFBUTtBQUNKLFdBQUssS0FERDtBQUVKLFdBQUssQ0FGRDtBQUdKLGVBQVMsS0FITDtBQUlKLGdCQUFVO0FBSk47QUFGRixHQUxhO0FBY3ZCLG9CQUFrQixDQUFDO0FBQ2YsVUFBTSxlQURTO0FBRWYsYUFBUyxDQUZNO0FBR2YsZ0JBQVksTUFIRztBQUlmLGlCQUFhLFVBSkU7QUFLZixnQkFBWSxDQUxHO0FBTWYsZ0JBQVksQ0FORztBQU9mLGdCQUFZLENBUEc7QUFRZixnQkFBWSxVQVJHO0FBU2YsbUJBQWU7QUFDWCxhQUFPLHFFQURJO0FBRVgsY0FBUTtBQUZHLEtBVEE7QUFhZixtQkFBZTtBQUNYLGFBQU8scUVBREk7QUFFWCxjQUFRO0FBRkcsS0FiQTtBQWlCZixrQkFBYztBQUNWLGFBQU8sb0VBREc7QUFFVixjQUFRO0FBRkUsS0FqQkM7QUFxQmYsZUFBVztBQUNQLFdBQUssS0FERTtBQUVQLFdBQUs7QUFGRSxLQXJCSTtBQXlCZixZQUFRLEdBekJPO0FBMEJmLFlBQVE7QUFDSixXQUFLLElBREQ7QUFFSixXQUFLLEVBRkQ7QUFHSixlQUFTLEdBSEw7QUFJSixnQkFBVTtBQUpOO0FBMUJPLEdBQUQsRUFnQ2Y7QUFDQyxVQUFNLGVBRFA7QUFFQyxhQUFTLENBRlY7QUFHQyxlQUFXLG9FQUhaO0FBSUMsZ0JBQVksS0FKYjtBQUtDLGlCQUFhLFVBTGQ7QUFNQyxnQkFBWSxtQkFOYjtBQU9DLGdCQUFZLElBUGI7QUFRQyxnQkFBWSxJQVJiO0FBU0MsZ0JBQVksVUFUYjtBQVVDLGVBQVc7QUFD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RkcsS0FUaEI7QUFhQyxtQkFBZTtBQUNYLGFBQU8scUVBREk7QUFFWCxjQUFRO0FBRkcsS0FiaEI7QUFpQkMsa0JBQWM7QUFDVixhQUFPLG9FQURHO0FBRVYsY0FBUTtBQUZFLEtBakJmO0FBcUJDLGVBQVc7QUFDUCxXQUFLLEtBREU7QUFFUCxXQUFLO0FBRkUsS0FyQlo7QUF5QkMsWUFBUSxHQXpCVDtBQTBCQyxZQUFRO0FBQ0osV0FBSyxJQUREO0FBRUosV0FBSyxFQUZEO0FBR0osZUFBUyxHQUhMO0FBSUosZ0JBQVU7QUFKTjtBQTFCVCxHQTdhZSxDQWRLO0FBNGR2QixpQkFBZSw0RUE1ZFE7QUE2ZHZCLGtCQUFnQiw0RUE3ZE87QUE4ZHZCLGtCQUFnQiw0RUE5ZE87QUErZHZCLGtCQUFnQiw0RUEvZE87QUFnZXZCLGtCQUFnQiw0RUFoZU87QUFpZXZCLGlCQUFlLDRFQWplUTtBQWtldkIsaUJBQWUsNEVBbGVRO0FBbWV2QixvQkFBa0I7QUFuZUssQ0FBcEIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBkZWZhdWx0RGF0YSA9IHtcbiAgICAvLyBcImJlZ2luX2F1ZGlvXCI6IFwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9iMWU1Mzc4MDgzYWRhYzk5NTA4Mzk3NzJjN2I2N2YzNC5tcDNcIixcbiAgICBcImJlZ2luX2F1ZGlvXCI6IFwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS84MWU3YTk0ZTE0MjBhNGNiY2FhNTgzZDQxODhhYjE0NS5tcDNcIixcbiAgICBcInBsYXlpbmdfYXVkaW9cIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS81NDkzNDdkMWJlNjIwZDlkOTFiNzQyMGQ0NWIzY2I3YS5tcDNcIixcbiAgICBcImVuZF9hdWRpb1wiOiBcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vODFlN2E5NGUxNDIwYTRjYmNhYTU4M2Q0MTg4YWIxNDUubXAzXCIsXG4gICAgXCJiZ0l0ZW1cIjoge1xuICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2FkY2NjYmQyNmUyY2ZhMjU5OTIwZTI0ZGYwMWQ0YjkyLnBuZ1wiLFxuICAgICAgICBcInJlY3RcIjoge1xuICAgICAgICAgICAgXCJ4XCI6IDM3NC42LFxuICAgICAgICAgICAgXCJ5XCI6IDAsXG4gICAgICAgICAgICBcIndpZHRoXCI6IDI5My44LFxuICAgICAgICAgICAgXCJoZWlnaHRcIjogMzkwXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFwiaG90Wm9uZUl0ZW1BcnJcIjogW3tcbiAgICAgICAgXCJpZFwiOiBcIjE2MzgwOTA0NTA0MDJcIixcbiAgICAgICAgXCJpbmRleFwiOiAwLFxuICAgICAgICBcIml0ZW1UeXBlXCI6IFwicmVjdFwiLFxuICAgICAgICBcImZvbnRTY2FsZVwiOiAwLjgxNDg0Mzc1LFxuICAgICAgICBcImltZ1NjYWxlXCI6IDEsXG4gICAgICAgIFwiaW1nU2l6ZVdcIjogMCxcbiAgICAgICAgXCJpbWdTaXplSFwiOiAwLFxuICAgICAgICBcIm1hcFNjYWxlXCI6IDAuODE0ODQzNzUsXG4gICAgICAgIFwic2tlSnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9jNWM2Y2Q4OTA2NjBhM2MyMmZkZTM5M2EzNzcwNDU4Zi5qc29uXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLlsI/msb3ovaZfc2tlLmpzb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInRleEpzb25EYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vY2VhMTA3NTE3NDA2NDYzNDc0ZDkwN2UzMDYxNjMyMjYuanNvblwiLFxuICAgICAgICAgICAgXCJuYW1lXCI6IFwi5bCP5rG96L2mX3RleC5qc29uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0ZXhQbmdEYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vODRiY2U2NGNkNDI1OWU2MDRhNDU4ZDA4ZGRkNzViZWMucG5nXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLlsI/msb3ovaZfdGV4LnBuZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZHJhZ0RvdFwiOiB7XG4gICAgICAgICAgICBcInhcIjogNTIxLjUsXG4gICAgICAgICAgICBcInlcIjogMTk1XG4gICAgICAgIH0sXG4gICAgICAgIFwiZ0lkeFwiOiBcIjFcIixcbiAgICAgICAgXCJyZWN0XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiA0Ni45LFxuICAgICAgICAgICAgXCJ5XCI6IDk1LFxuICAgICAgICAgICAgXCJ3aWR0aFwiOiAyMDAsXG4gICAgICAgICAgICBcImhlaWdodFwiOiAyMDBcbiAgICAgICAgfVxuICAgIH0sIHtcbiAgICAgICAgXCJpZFwiOiBcIjE2MzgwOTA0NjUxMzNcIixcbiAgICAgICAgXCJpbmRleFwiOiAxLFxuICAgICAgICBcInBpY191cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS83MGQwMmVlMzc4OGUzNzNmNzA3YTQ1NTMwY2QyZjljMC5wbmdcIixcbiAgICAgICAgXCJpdGVtVHlwZVwiOiBcInBpY1wiLFxuICAgICAgICBcImZvbnRTY2FsZVwiOiAwLjgxNDg0Mzc1LFxuICAgICAgICBcImltZ1NjYWxlXCI6IDAuMjM1NzkyMDE5MzQ3MDM3NDcsXG4gICAgICAgIFwiaW1nU2l6ZVdcIjogMTI0NixcbiAgICAgICAgXCJpbWdTaXplSFwiOiAxNjU0LFxuICAgICAgICBcIm1hcFNjYWxlXCI6IDAuODE0ODQzNzUsXG4gICAgICAgIFwiZHJhZ0RvdFwiOiB7XG4gICAgICAgICAgICBcInhcIjogNTIxLjUsXG4gICAgICAgICAgICBcInlcIjogMTk1XG4gICAgICAgIH0sXG4gICAgICAgIFwiZ0lkeFwiOiBcIjJcIixcbiAgICAgICAgXCJyZWN0XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiAwLFxuICAgICAgICAgICAgXCJ5XCI6IDEsXG4gICAgICAgICAgICBcIndpZHRoXCI6IDI5My44LFxuICAgICAgICAgICAgXCJoZWlnaHRcIjogMzkwXG4gICAgICAgIH1cbiAgICB9LCB7XG4gICAgICAgIFwiaWRcIjogXCIxNjM4MDkwNDg1MDMxXCIsXG4gICAgICAgIFwiaW5kZXhcIjogMixcbiAgICAgICAgXCJhdWRpb191cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9lMzFjM2IxOTE0ODM3YTYxMWQ0ZDNiYjFjZWIwMDc3My5tcDNcIixcbiAgICAgICAgXCJpdGVtVHlwZVwiOiBcInJlY3RcIixcbiAgICAgICAgXCJmb250U2NhbGVcIjogMC44MTQ4NDM3NSxcbiAgICAgICAgXCJpbWdTY2FsZVwiOiAxLFxuICAgICAgICBcImltZ1NpemVXXCI6IDAsXG4gICAgICAgIFwiaW1nU2l6ZUhcIjogMCxcbiAgICAgICAgXCJtYXBTY2FsZVwiOiAwLjgxNDg0Mzc1LFxuICAgICAgICBcInNrZUpzb25EYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vZDJkN2RlOWY4MDc5ZjM2ZTgzNTRkMTZlNGNhMjY0NzYuanNvblwiLFxuICAgICAgICAgICAgXCJuYW1lXCI6IFwi5oi/5a2QX3NrZS5qc29uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0ZXhKc29uRGF0YVwiOiB7XG4gICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzIwNGVhMTgwMThhMzUyYTMwZmQyMzNhNDZmOWEwYTFhLmpzb25cIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIuaIv+WtkF90ZXguanNvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidGV4UG5nRGF0YVwiOiB7XG4gICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2NmOGRhMGFiMDBhN2Q5ZjM0YmRmOGY0OTBjMjlkY2JmLnBuZ1wiLFxuICAgICAgICAgICAgXCJuYW1lXCI6IFwi5oi/5a2QX3RleC5wbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcImRyYWdEb3RcIjoge1xuICAgICAgICAgICAgXCJ4XCI6IDUyMS41LFxuICAgICAgICAgICAgXCJ5XCI6IDE5NVxuICAgICAgICB9LFxuICAgICAgICBcImdJZHhcIjogXCIwXCIsXG4gICAgICAgIFwibGFiZWxUZXh0XCI6IFwiMTRcIixcbiAgICAgICAgXCJwb3NYXCI6IDU3OCxcbiAgICAgICAgXCJwb3NZXCI6IDE2MC45OTc5MTMzNDQ5NjE1NSxcbiAgICAgICAgXCJyZWN0XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiAxMjQuOSxcbiAgICAgICAgICAgIFwieVwiOiAxMDgsXG4gICAgICAgICAgICBcIndpZHRoXCI6IDE3MCxcbiAgICAgICAgICAgIFwiaGVpZ2h0XCI6IDEwNlxuICAgICAgICB9XG4gICAgfSwge1xuICAgICAgICBcImlkXCI6IFwiMTYzODA5MDUzOTc4N1wiLFxuICAgICAgICBcImluZGV4XCI6IDMsXG4gICAgICAgIFwiaXRlbVR5cGVcIjogXCJyZWN0XCIsXG4gICAgICAgIFwiZm9udFNjYWxlXCI6IDAuODE0ODQzNzUsXG4gICAgICAgIFwiaW1nU2NhbGVcIjogMSxcbiAgICAgICAgXCJpbWdTaXplV1wiOiAwLFxuICAgICAgICBcImltZ1NpemVIXCI6IDAsXG4gICAgICAgIFwibWFwU2NhbGVcIjogMC44MTQ4NDM3NSxcbiAgICAgICAgXCJza2VKc29uRGF0YVwiOiB7XG4gICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2VkMmFjNDkzMWE5YzAwZmY2YzQyOTgzODE3MjI2NzZlLmpzb25cIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIueJm19za2UuanNvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidGV4SnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8wZTE1MzA5M2VlNzI2NWI2YTg0Mzg0NzU0M2Q2MTEwYi5qc29uXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLniZtfdGV4Lmpzb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInRleFBuZ0RhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS82MzE2NjFlMTM2MTZlZWE2Y2RlOWY5ZTY2MTBmNTAwOC5wbmdcIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIueJm190ZXgucG5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkcmFnRG90XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiA1MjEuNSxcbiAgICAgICAgICAgIFwieVwiOiAxOTcuNDYxMTY1MDQ4NTQzNjhcbiAgICAgICAgfSxcbiAgICAgICAgXCJnSWR4XCI6IFwiMVwiLFxuICAgICAgICBcInJlY3RcIjoge1xuICAgICAgICAgICAgXCJ4XCI6IDQ2LjksXG4gICAgICAgICAgICBcInlcIjogOTUsXG4gICAgICAgICAgICBcIndpZHRoXCI6IDIwMCxcbiAgICAgICAgICAgIFwiaGVpZ2h0XCI6IDIwMFxuICAgICAgICB9XG4gICAgfSwge1xuICAgICAgICBcImlkXCI6IFwiMTYzODA5MDU2Mjg2N1wiLFxuICAgICAgICBcImluZGV4XCI6IDQsXG4gICAgICAgIFwiYXVkaW9fdXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vYmYxOTI0YzUwMmNhMWE0YWM5MjhhMzFlN2M4YWE3MGUubXAzXCIsXG4gICAgICAgIFwiaXRlbVR5cGVcIjogXCJyZWN0XCIsXG4gICAgICAgIFwiZm9udFNjYWxlXCI6IDAuODE0ODQzNzUsXG4gICAgICAgIFwiaW1nU2NhbGVcIjogMSxcbiAgICAgICAgXCJpbWdTaXplV1wiOiAwLFxuICAgICAgICBcImltZ1NpemVIXCI6IDAsXG4gICAgICAgIFwibWFwU2NhbGVcIjogMC44MTQ4NDM3NSxcbiAgICAgICAgXCJza2VKc29uRGF0YVwiOiB7XG4gICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2JkM2MyY2M5M2IxNTkzNDMzYTU4ZDg0ODI5NzJmZjY2Lmpzb25cIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIuiLueaenF9za2UuanNvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidGV4SnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8xZjU0ZGYzMTdhOGM4NjI3MWUyOWQ2ZGIzZmZiNTVjZS5qc29uXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLoi7nmnpxfdGV4Lmpzb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInRleFBuZ0RhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS83MzRhYzA2YTdlZjAxOGI0NTdlN2FjNzY5Mjc4OWZmYS5wbmdcIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIuiLueaenF90ZXgucG5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkcmFnRG90XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiA1MjEuNSxcbiAgICAgICAgICAgIFwieVwiOiAxOTcuNDYxMTY1MDQ4NTQzNjhcbiAgICAgICAgfSxcbiAgICAgICAgXCJnSWR4XCI6IFwiMFwiLFxuICAgICAgICBcImxhYmVsVGV4dFwiOiBcIjZcIixcbiAgICAgICAgXCJwb3NYXCI6IDQyOSxcbiAgICAgICAgXCJwb3NZXCI6IDE0NixcbiAgICAgICAgXCJyZWN0XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiAtMC4xLFxuICAgICAgICAgICAgXCJ5XCI6IDcwLFxuICAgICAgICAgICAgXCJ3aWR0aFwiOiAxMjIsXG4gICAgICAgICAgICBcImhlaWdodFwiOiAxNTJcbiAgICAgICAgfVxuICAgIH0sIHtcbiAgICAgICAgXCJpZFwiOiBcIjE2MzgwOTA1OTQyNDdcIixcbiAgICAgICAgXCJpbmRleFwiOiA1LFxuICAgICAgICBcIml0ZW1UeXBlXCI6IFwicmVjdFwiLFxuICAgICAgICBcImZvbnRTY2FsZVwiOiAwLjgxNDg0Mzc1LFxuICAgICAgICBcImltZ1NjYWxlXCI6IDEsXG4gICAgICAgIFwiaW1nU2l6ZVdcIjogMCxcbiAgICAgICAgXCJpbWdTaXplSFwiOiAwLFxuICAgICAgICBcIm1hcFNjYWxlXCI6IDAuODE0ODQzNzUsXG4gICAgICAgIFwic2tlSnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8xZDRiMjUxY2FmMGMwYjgyNDVmYjE3Y2Q4NDQ1NjcyYy5qc29uXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLlhpzlpKtfc2tlLmpzb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInRleEpzb25EYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vMWZkZDA0Y2FjYjZkNTQzY2YwNWNlNjRlODEyNGE2ZmYuanNvblwiLFxuICAgICAgICAgICAgXCJuYW1lXCI6IFwi5Yac5aSrX3RleC5qc29uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0ZXhQbmdEYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vOGY1ODJjYjM5ZWIzNDlkYTA4ZTA2Mjg5YjBjZTZjMTYucG5nXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLlhpzlpKtfdGV4LnBuZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZHJhZ0RvdFwiOiB7XG4gICAgICAgICAgICBcInhcIjogNTIxLjUsXG4gICAgICAgICAgICBcInlcIjogMTk3LjQ2MTE2NTA0ODU0MzY4XG4gICAgICAgIH0sXG4gICAgICAgIFwiZ0lkeFwiOiBcIjFcIixcbiAgICAgICAgXCJyZWN0XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiA0Ni45LFxuICAgICAgICAgICAgXCJ5XCI6IDk1LFxuICAgICAgICAgICAgXCJ3aWR0aFwiOiAyMDAsXG4gICAgICAgICAgICBcImhlaWdodFwiOiAyMDBcbiAgICAgICAgfVxuICAgIH0sIHtcbiAgICAgICAgXCJpZFwiOiBcIjE2MzgwOTA2NjMwNTZcIixcbiAgICAgICAgXCJpbmRleFwiOiA2LFxuICAgICAgICBcIml0ZW1UeXBlXCI6IFwicmVjdFwiLFxuICAgICAgICBcImZvbnRTY2FsZVwiOiAwLjgxNDg0Mzc1LFxuICAgICAgICBcImltZ1NjYWxlXCI6IDEsXG4gICAgICAgIFwiaW1nU2l6ZVdcIjogMCxcbiAgICAgICAgXCJpbWdTaXplSFwiOiAwLFxuICAgICAgICBcIm1hcFNjYWxlXCI6IDAuODE0ODQzNzUsXG4gICAgICAgIFwic2tlSnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS80NTAzNzIxOTAxODgwZDBiNmMzYWQ2ZDQyNjFlOTU4Yi5qc29uXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLlsI/lpbPlralfc2tlLmpzb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInRleEpzb25EYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vZmM0ZmQwYjJmNjcyZGZmN2M3YjIxNDg4MzAxNjQwOTAuanNvblwiLFxuICAgICAgICAgICAgXCJuYW1lXCI6IFwi5bCP5aWz5a2pX3RleC5qc29uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0ZXhQbmdEYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vNGJlNDFjMTU5NzJjYWY5OWVlZjk1NmJhNDg3NTljOTEucG5nXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLlsI/lpbPlralfdGV4LnBuZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZHJhZ0RvdFwiOiB7XG4gICAgICAgICAgICBcInhcIjogNTIxLjUsXG4gICAgICAgICAgICBcInlcIjogMTk3LjQ2MTE2NTA0ODU0MzY4XG4gICAgICAgIH0sXG4gICAgICAgIFwiZ0lkeFwiOiBcIjFcIixcbiAgICAgICAgXCJyZWN0XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiA0Ni45LFxuICAgICAgICAgICAgXCJ5XCI6IDk1LFxuICAgICAgICAgICAgXCJ3aWR0aFwiOiAyMDAsXG4gICAgICAgICAgICBcImhlaWdodFwiOiAyMDBcbiAgICAgICAgfVxuICAgIH0sIHtcbiAgICAgICAgXCJpZFwiOiBcIjE2MzgwOTA2ODU1NzFcIixcbiAgICAgICAgXCJpbmRleFwiOiA3LFxuICAgICAgICBcIml0ZW1UeXBlXCI6IFwicmVjdFwiLFxuICAgICAgICBcImZvbnRTY2FsZVwiOiAwLjgxNDg0Mzc1LFxuICAgICAgICBcImltZ1NjYWxlXCI6IDEsXG4gICAgICAgIFwiaW1nU2l6ZVdcIjogMCxcbiAgICAgICAgXCJpbWdTaXplSFwiOiAwLFxuICAgICAgICBcIm1hcFNjYWxlXCI6IDAuODE0ODQzNzUsXG4gICAgICAgIFwic2tlSnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS81NTk1MWM3OTRiNDE0YWI1OGNjYTAyMzY0MjgxOWUzNy5qc29uXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLmr43puKFfc2tlLmpzb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInRleEpzb25EYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vNDdiOTMzMjNiMWQxZTFlNjAyMDcwNGM1MzdmNDY4MjAuanNvblwiLFxuICAgICAgICAgICAgXCJuYW1lXCI6IFwi5q+N6bihX3RleC5qc29uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0ZXhQbmdEYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vZGQ2NjAyMWZmODYwYjAyYTU1OWQ1OTgxN2M3MWUyN2YucG5nXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLmr43puKFfdGV4LnBuZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZHJhZ0RvdFwiOiB7XG4gICAgICAgICAgICBcInhcIjogNTIxLjUsXG4gICAgICAgICAgICBcInlcIjogMTk3LjQ2MTE2NTA0ODU0MzY4XG4gICAgICAgIH0sXG4gICAgICAgIFwiZ0lkeFwiOiBcIjFcIixcbiAgICAgICAgXCJyZWN0XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiA0Ni45LFxuICAgICAgICAgICAgXCJ5XCI6IDk1LFxuICAgICAgICAgICAgXCJ3aWR0aFwiOiAyMDAsXG4gICAgICAgICAgICBcImhlaWdodFwiOiAyMDBcbiAgICAgICAgfVxuICAgIH0sIHtcbiAgICAgICAgXCJpZFwiOiBcIjE2MzgwOTA2OTU2NTJcIixcbiAgICAgICAgXCJpbmRleFwiOiA4LFxuICAgICAgICBcImF1ZGlvX3VybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzMyM2ZlYjE5ZDE1MzA2OTcwMmZmZDIxMDk3ZjE4Zjc5Lm1wM1wiLFxuICAgICAgICBcIml0ZW1UeXBlXCI6IFwicmVjdFwiLFxuICAgICAgICBcImZvbnRTY2FsZVwiOiAwLjgxNDg0Mzc1LFxuICAgICAgICBcImltZ1NjYWxlXCI6IDEsXG4gICAgICAgIFwiaW1nU2l6ZVdcIjogMCxcbiAgICAgICAgXCJpbWdTaXplSFwiOiAwLFxuICAgICAgICBcIm1hcFNjYWxlXCI6IDAuODE0ODQzNzUsXG4gICAgICAgIFwic2tlSnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9jZDdjN2E3NTZjMGY3OWQyOGY0MTk1NzZlM2I4NWIwYy5qc29uXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLpuK3lrZBfc2tlLmpzb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInRleEpzb25EYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vNzYxM2YzMDg5M2E1ZjY0NzczYTc3NzIzYzFkNjdmMGQuanNvblwiLFxuICAgICAgICAgICAgXCJuYW1lXCI6IFwi6bit5a2QX3RleC5qc29uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0ZXhQbmdEYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vNTliMjI5M2VmNGVlYTlkNjRmZjk4MjFiYzVkNjlhNmQucG5nXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLpuK3lrZBfdGV4LnBuZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZHJhZ0RvdFwiOiB7XG4gICAgICAgICAgICBcInhcIjogNTIxLjUsXG4gICAgICAgICAgICBcInlcIjogMTk3LjQ2MTE2NTA0ODU0MzY4XG4gICAgICAgIH0sXG4gICAgICAgIFwiZ0lkeFwiOiBcIjBcIixcbiAgICAgICAgXCJsYWJlbFRleHRcIjogXCIxMVwiLFxuICAgICAgICBcInBvc1hcIjogNTY0LjQ5OTMxNTE0OTExNTUsXG4gICAgICAgIFwicG9zWVwiOiAyNDcuOTk3MzU2OTAzNjE3OTcsXG4gICAgICAgIFwicmVjdFwiOiB7XG4gICAgICAgICAgICBcInhcIjogMTI3LjksXG4gICAgICAgICAgICBcInlcIjogMjE2LFxuICAgICAgICAgICAgXCJ3aWR0aFwiOiAxMjQsXG4gICAgICAgICAgICBcImhlaWdodFwiOiA2NFxuICAgICAgICB9XG4gICAgfSwge1xuICAgICAgICBcImlkXCI6IFwiMTYzODA5MDc1ODE1OVwiLFxuICAgICAgICBcImluZGV4XCI6IDksXG4gICAgICAgIFwiYXVkaW9fdXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vYjkwM2IxNzRmMDkxMDc1MTdiNWQ2Zjg5MzRiNzM0NDcubXAzXCIsXG4gICAgICAgIFwiaXRlbVR5cGVcIjogXCJyZWN0XCIsXG4gICAgICAgIFwiZm9udFNjYWxlXCI6IDAuODE0ODQzNzUsXG4gICAgICAgIFwiaW1nU2NhbGVcIjogMSxcbiAgICAgICAgXCJpbWdTaXplV1wiOiAwLFxuICAgICAgICBcImltZ1NpemVIXCI6IDAsXG4gICAgICAgIFwibWFwU2NhbGVcIjogMC44MTQ4NDM3NSxcbiAgICAgICAgXCJza2VKc29uRGF0YVwiOiB7XG4gICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2I5ZmE4NWMyMjdkYWE2NTM5ZjEyY2FiNWE1MDU4MDUyLmpzb25cIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIum4oeibi19za2UuanNvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidGV4SnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS85OWFhOGRlN2I2OTAwMGFjNmM1ZTBmYjZhNTA4YjY5Mi5qc29uXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLpuKHom4tfdGV4Lmpzb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInRleFBuZ0RhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8wOWJkMGEzNGE0NTA4NjEzZmQ3YzE2NzcyNGU0YTk2OS5wbmdcIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIum4oeibi190ZXgucG5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkcmFnRG90XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiA1MjEuNSxcbiAgICAgICAgICAgIFwieVwiOiAxOTcuNDYxMTY1MDQ4NTQzNjhcbiAgICAgICAgfSxcbiAgICAgICAgXCJnSWR4XCI6IFwiMFwiLFxuICAgICAgICBcImxhYmVsVGV4dFwiOiBcIjdcIixcbiAgICAgICAgXCJwb3NYXCI6IDQ3MS41MDAzNjM4MjcwMzIzNCxcbiAgICAgICAgXCJwb3NZXCI6IDI5MS45OTY4MzI1NjQ2NTk1NCxcbiAgICAgICAgXCJyZWN0XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiA2Ny40LFxuICAgICAgICAgICAgXCJ5XCI6IDIyMyxcbiAgICAgICAgICAgIFwid2lkdGhcIjogNTksXG4gICAgICAgICAgICBcImhlaWdodFwiOiAxMzhcbiAgICAgICAgfVxuICAgIH0sIHtcbiAgICAgICAgXCJpZFwiOiBcIjE2MzgwOTA4MTIxNTVcIixcbiAgICAgICAgXCJpbmRleFwiOiAxMCxcbiAgICAgICAgXCJpdGVtVHlwZVwiOiBcInJlY3RcIixcbiAgICAgICAgXCJmb250U2NhbGVcIjogMC44MTQ4NDM3NSxcbiAgICAgICAgXCJpbWdTY2FsZVwiOiAxLFxuICAgICAgICBcImltZ1NpemVXXCI6IDAsXG4gICAgICAgIFwiaW1nU2l6ZUhcIjogMCxcbiAgICAgICAgXCJtYXBTY2FsZVwiOiAwLjgxNDg0Mzc1LFxuICAgICAgICBcInNrZUpzb25EYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vMzU3ZmVmODIwNDIyOGFmYjQzZDBjZTczNzQ2MjI4ZTUuanNvblwiLFxuICAgICAgICAgICAgXCJuYW1lXCI6IFwi6bG8X3NrZS5qc29uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0ZXhKc29uRGF0YVwiOiB7XG4gICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2Y2OTRlNTQ0MjA5NWEzMTdmYzdkOGIxMzkwZTYzMGM3Lmpzb25cIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIumxvF90ZXguanNvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidGV4UG5nRGF0YVwiOiB7XG4gICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2Y1NjZjY2ExMGZkODNmNjJhNDY1YjE0NGFjNzNkNDgzLnBuZ1wiLFxuICAgICAgICAgICAgXCJuYW1lXCI6IFwi6bG8X3RleC5wbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcImRyYWdEb3RcIjoge1xuICAgICAgICAgICAgXCJ4XCI6IDUyMS41LFxuICAgICAgICAgICAgXCJ5XCI6IDE5Ny40NjExNjUwNDg1NDM2OFxuICAgICAgICB9LFxuICAgICAgICBcImdJZHhcIjogXCIxXCIsXG4gICAgICAgIFwicmVjdFwiOiB7XG4gICAgICAgICAgICBcInhcIjogNDYuOSxcbiAgICAgICAgICAgIFwieVwiOiA5NSxcbiAgICAgICAgICAgIFwid2lkdGhcIjogMjAwLFxuICAgICAgICAgICAgXCJoZWlnaHRcIjogMjAwXG4gICAgICAgIH1cbiAgICB9LCB7XG4gICAgICAgIFwiaWRcIjogXCIxNjM4MDkwODI0MjQ0XCIsXG4gICAgICAgIFwiaW5kZXhcIjogMTEsXG4gICAgICAgIFwiYXVkaW9fdXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vMjY1NmI3MmFlYzdmNmRlZjA3NzEzZmJjOTkzMDkxNjgubXAzXCIsXG4gICAgICAgIFwiaXRlbVR5cGVcIjogXCJyZWN0XCIsXG4gICAgICAgIFwiZm9udFNjYWxlXCI6IDAuODE0ODQzNzUsXG4gICAgICAgIFwiaW1nU2NhbGVcIjogMSxcbiAgICAgICAgXCJpbWdTaXplV1wiOiAwLFxuICAgICAgICBcImltZ1NpemVIXCI6IDAsXG4gICAgICAgIFwibWFwU2NhbGVcIjogMC44MTQ4NDM3NSxcbiAgICAgICAgXCJza2VKc29uRGF0YVwiOiB7XG4gICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzIwY2JmM2QxODZhMTk3YmFhZWQzODIwNGRkMDE3ZjUxLmpzb25cIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIueMq19za2UuanNvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidGV4SnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9kN2RlNWEzMmRlM2VlMWFkNjYwZGM1MDliYThhZGYxZC5qc29uXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLnjKtfdGV4Lmpzb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInRleFBuZ0RhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9hZjg2ZTk2N2FhYjg2MzJjZDBiMjZkNjBhNjJmMDY3NS5wbmdcIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIueMq190ZXgucG5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkcmFnRG90XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiA1MjEuNSxcbiAgICAgICAgICAgIFwieVwiOiAxOTcuNDYxMTY1MDQ4NTQzNjhcbiAgICAgICAgfSxcbiAgICAgICAgXCJnSWR4XCI6IFwiMFwiLFxuICAgICAgICBcImxhYmVsVGV4dFwiOiBcIjEwXCIsXG4gICAgICAgIFwicG9zWFwiOiA0MDguNTAxMTQ0OTg1MDcyMzYsXG4gICAgICAgIFwicG9zWVwiOiAyODguOTk2ODk2NzY5NDMsXG4gICAgICAgIFwicmVjdFwiOiB7XG4gICAgICAgICAgICBcInhcIjogMS40LFxuICAgICAgICAgICAgXCJ5XCI6IDIyMixcbiAgICAgICAgICAgIFwid2lkdGhcIjogNjUsXG4gICAgICAgICAgICBcImhlaWdodFwiOiAxMzRcbiAgICAgICAgfVxuICAgIH0sIHtcbiAgICAgICAgXCJpZFwiOiBcIjE2MzgwOTA4OTc2NDRcIixcbiAgICAgICAgXCJpbmRleFwiOiAxMixcbiAgICAgICAgXCJhdWRpb191cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS85YmJmOGJhMmZhN2Y5NmVhNWE5NWMyN2EzODQ0MTRhMi5tcDNcIixcbiAgICAgICAgXCJpdGVtVHlwZVwiOiBcInJlY3RcIixcbiAgICAgICAgXCJmb250U2NhbGVcIjogMC44MTQ4NDM3NSxcbiAgICAgICAgXCJpbWdTY2FsZVwiOiAxLFxuICAgICAgICBcImltZ1NpemVXXCI6IDAsXG4gICAgICAgIFwiaW1nU2l6ZUhcIjogMCxcbiAgICAgICAgXCJtYXBTY2FsZVwiOiAwLjgxNDg0Mzc1LFxuICAgICAgICBcInNrZUpzb25EYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vZDg1MDZlYmRkYjI5YzhkMDhiNGI5MzM3NmI0NWY1YzkuanNvblwiLFxuICAgICAgICAgICAgXCJuYW1lXCI6IFwi6bifX3NrZS5qc29uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0ZXhKc29uRGF0YVwiOiB7XG4gICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzlmYWQ0N2M5OTAyNWI3YjIyOWRmNTJhZmI3OTdlYzVjLmpzb25cIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIum4n190ZXguanNvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidGV4UG5nRGF0YVwiOiB7XG4gICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2U4NmIxMzZiOTcwNjc2OGM1Y2EwZGJhM2RjMGFhYjIxLnBuZ1wiLFxuICAgICAgICAgICAgXCJuYW1lXCI6IFwi6bifX3RleC5wbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcImRyYWdEb3RcIjoge1xuICAgICAgICAgICAgXCJ4XCI6IDUyMS41LFxuICAgICAgICAgICAgXCJ5XCI6IDE5Ny40NjExNjUwNDg1NDM2OFxuICAgICAgICB9LFxuICAgICAgICBcImdJZHhcIjogXCIwXCIsXG4gICAgICAgIFwibGFiZWxUZXh0XCI6IFwiOVwiLFxuICAgICAgICBcInBvc1hcIjogNTczLFxuICAgICAgICBcInBvc1lcIjogNzQsXG4gICAgICAgIFwicmVjdFwiOiB7XG4gICAgICAgICAgICBcInhcIjogMTI3LjksXG4gICAgICAgICAgICBcInlcIjogNDEsXG4gICAgICAgICAgICBcIndpZHRoXCI6IDE1NCxcbiAgICAgICAgICAgIFwiaGVpZ2h0XCI6IDY2XG4gICAgICAgIH1cbiAgICB9LCB7XG4gICAgICAgIFwiaWRcIjogXCIxNjM4MDkwOTQ4OTUwXCIsXG4gICAgICAgIFwiaW5kZXhcIjogMTMsXG4gICAgICAgIFwiaXRlbVR5cGVcIjogXCJyZWN0XCIsXG4gICAgICAgIFwiZm9udFNjYWxlXCI6IDAuODE0ODQzNzUsXG4gICAgICAgIFwiaW1nU2NhbGVcIjogMSxcbiAgICAgICAgXCJpbWdTaXplV1wiOiAwLFxuICAgICAgICBcImltZ1NpemVIXCI6IDAsXG4gICAgICAgIFwibWFwU2NhbGVcIjogMC44MTQ4NDM3NSxcbiAgICAgICAgXCJza2VKc29uRGF0YVwiOiB7XG4gICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzNkMWQ0OWU1ODNkOTdjZDUwOTdkMDgxMDIyNjViMWM2Lmpzb25cIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIuiaguiagV9za2UuanNvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidGV4SnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS85YTNhNWM4NzFiMjg4YWViYjFlNjkyMGYxZTk3MDlmOC5qc29uXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLomoLomoFfdGV4Lmpzb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInRleFBuZ0RhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8xZmFkNjJmMzEzYjZmZjcyYTY0MmNiNGIxNWFlYWYwNC5wbmdcIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIuiaguiagV90ZXgucG5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkcmFnRG90XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiA1MjEuNSxcbiAgICAgICAgICAgIFwieVwiOiAxOTcuNDYxMTY1MDQ4NTQzNjhcbiAgICAgICAgfSxcbiAgICAgICAgXCJnSWR4XCI6IFwiMVwiLFxuICAgICAgICBcInJlY3RcIjoge1xuICAgICAgICAgICAgXCJ4XCI6IDQ2LjksXG4gICAgICAgICAgICBcInlcIjogOTUsXG4gICAgICAgICAgICBcIndpZHRoXCI6IDIwMCxcbiAgICAgICAgICAgIFwiaGVpZ2h0XCI6IDIwMFxuICAgICAgICB9XG4gICAgfV0sXG4gICAgXCJndWlkZV9hdWRpb1wiOiBcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vZDZjMWQzYjg0YTQ3NzRhMGZjMTgzYTE0YWJiYjZjMDkubXAzXCIsXG4gICAgXCJ3cm9uZ19hdWRpbzFcIjogXCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2I3N2VmMmE2Y2RjYjY1MDQ1MjA0ODRhOWIxOTdiMmZkLm1wM1wiLFxuICAgIFwid3JvbmdfYXVkaW8yXCI6IFwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS84ZGFjYjI0NDU4MTZlMWYwNjhlYTExNjc1MmMyMTE3My5tcDNcIixcbiAgICBcImJlZ2luX2F1ZGlvMVwiOiBcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vZTQ1YWQwODIzYWUyYzhlMDQyNDZkNzZjN2Y1NzAzMGQubXAzXCIsXG4gICAgXCJiZWdpbl9hdWRpbzJcIjogXCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzA1MjMyYWQ1MWY4ZDllMWFmNmRkMTI3MzE0N2JjNThmLm1wM1wiLFxuICAgIFwicmlnaHRfYXVkaW9cIjogXCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzMzMGVmZjhkNWU4Y2M0Mjk5NjVkYTgyNjUyMjA3ZmYyLm1wM1wiLFxuICAgIFwid3JvbmdfYXVkaW9cIjogXCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzE2NjQxNzBlNTY5ZDk3NDI3OWJjZWM2MjZiZTE3NmQ5Lm1wM1wiLFxuICAgIFwiYmVnaW5fc2VwX3RpbWVcIjogMTVcbn0iXX0= //------QC-SOURCE-SPLIT------ diff --git a/temp/quick-scripts/dst/__quick_compile__.js b/temp/quick-scripts/dst/__quick_compile__.js index c0ee4b7..3a128df 100644 --- a/temp/quick-scripts/dst/__quick_compile__.js +++ b/temp/quick-scripts/dst/__quick_compile__.js @@ -1,6 +1,6 @@ (function () { -var scripts = [{"deps":{"./assets/OP15/script/util":1,"./assets/OP15/script/state":2,"./assets/OP15/script/defaultData":3,"./assets/OP15/script/xstate":5,"./assets/OP15/scene/OP15":4},"path":"preview-scripts/__qc_index__.js"},{"deps":{},"path":"preview-scripts/assets/OP15/script/util.js"},{"deps":{},"path":"preview-scripts/assets/OP15/script/state.js"},{"deps":{},"path":"preview-scripts/assets/OP15/script/defaultData.js"},{"deps":{"../script/util":1,"../script/defaultData":3,"../script/xstate":5},"path":"preview-scripts/assets/OP15/scene/OP15.js"},{"deps":{},"path":"preview-scripts/assets/OP15/script/xstate.js"}]; +var scripts = [{"deps":{"./assets/OP15/script/state":1,"./assets/OP15/script/xstate":2,"./assets/OP15/script/defaultData":5,"./assets/OP15/scene/OP15":3,"./assets/OP15/script/util":4},"path":"preview-scripts/__qc_index__.js"},{"deps":{},"path":"preview-scripts/assets/OP15/script/state.js"},{"deps":{},"path":"preview-scripts/assets/OP15/script/xstate.js"},{"deps":{"../script/defaultData":5,"../script/xstate":2,"../script/util":4},"path":"preview-scripts/assets/OP15/scene/OP15.js"},{"deps":{},"path":"preview-scripts/assets/OP15/script/util.js"},{"deps":{},"path":"preview-scripts/assets/OP15/script/defaultData.js"}]; var entries = ["preview-scripts/__qc_index__.js"]; var bundleScript = 'preview-scripts/__qc_bundle__.js'; diff --git a/temp/quick-scripts/dst/assets/OP15/scene/OP15.js b/temp/quick-scripts/dst/assets/OP15/scene/OP15.js index 212072f..d9da81c 100644 --- a/temp/quick-scripts/dst/assets/OP15/scene/OP15.js +++ b/temp/quick-scripts/dst/assets/OP15/scene/OP15.js @@ -217,8 +217,6 @@ cc.Class({ console.log('[answer] thinking and playing'); // check every second var id = setInterval(function () { - console.log("aaaaaa"); - if (!_this._lastFingerPosition.dirty) { return; } @@ -238,7 +236,7 @@ cc.Class({ } else { callback('WRONG'); } - }, 300); + }, 100); _this._intervalIds.push(id); // Perform cleanup @@ -269,8 +267,17 @@ cc.Class({ var an = context.questions[context.questionIndex].node; console.log('in right ' + typeof an); an.active = true; - var dragonDisplay = an.getComponent(dragonBones.ArmatureDisplay); - dragonDisplay.playAnimation('normal', 0); + + if (an.isSpine) { + var skeleton = an.getComponent(sp.Skeleton); + skeleton.setToSetupPose(); + setTimeout(function () { + skeleton.setAnimation(0, 'normal', true); + }, 1); + } else { + var dragonDisplay = an.getComponent(dragonBones.ArmatureDisplay); + dragonDisplay.playAnimation('normal', 0); + } var ddLogoCat = _this.logoCat.getComponent(dragonBones.ArmatureDisplay); @@ -621,8 +628,6 @@ cc.Class({ this.isDebug = false; }, checkInRegion: function checkInRegion(r) { - console.log('r~~~: ', r); - if (!this._lastFingerPosition && !this._lastFingerPosition.pos) { return null; } @@ -634,6 +639,8 @@ cc.Class({ x: 0, y: 0 }; + console.log('~p: ', p); + console.log('~r: ', r); var w = p.x > r.x && p.x < r.x + r.width; var h = p.y > r.y && p.y < r.y + r.height; return w && h; @@ -656,100 +663,567 @@ cc.Class({ }, getDefaultData: function getDefaultData() { return { - "begin_audio": "http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3", - "begin_sep_time": 1, - "guide_audio": "http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3", - "playing_audio": "http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3", - "right_audio": "http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3", - "wrong_audio": "http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3", - "wrong_audio1": "http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3", - "wrong_audio2": "http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3", - "end_audio": "http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3", + "begin_audio": "https://teach.cdn.ireadabc.com/9be46c9adb540ed8a60763f1e657ccb7.mp3", + "begin_sep_time": 66, + "guide_audio": "https://teach.cdn.ireadabc.com/9523c8ed45faee686363dd157b0d7426.mp3", + "playing_audio": "https://teach.cdn.ireadabc.com/d6a953052a6f80549730cb4307c55719.mp3", + "right_audio": "https://teach.cdn.ireadabc.com/43791fc418e666df5e9ec1b7bf936409.mp3", + "wrong_audio": "https://teach.cdn.ireadabc.com/7dd85f025a132c2eef8daee38d900287.mp3", + "wrong_audio1": "https://teach.cdn.ireadabc.com/a76afb06af0799bf538e38f9f80a2261.mp3", + "wrong_audio2": "https://teach.cdn.ireadabc.com/daee88b6f2eadd78b60436eedffcae08.mp3", + "end_audio": "https://teach.cdn.ireadabc.com/9c1e87b3c184b06e14e44bb058b9804e.mp3", "bgItem": { - "url": "http://staging-teach.cdn.ireadabc.com/84ec6edc20bceaaa9dbe824092b6860d.png", + "url": "https://teach.cdn.ireadabc.com/16b6dacd8e6c1ce6da16f500a66b366b.jpg", "rect": { - "x": 736.95, + "x": 319.68, "y": 0, - "width": 599.09, - "height": 775 + "width": 257.64, + "height": 342 } }, "hotZoneItemArr": [{ - "id": "1659333645573", + "id": "1650544807877", "index": 0, - "audio_url": "http://staging-teach.cdn.ireadabc.com/5a1a2670845bfe76662e86d9a3a69f81.mp3", - "itemType": "rect", - "fontScale": 1.61953125, + "itemType": "pic", + "fontScale": 0.70078125, "imgScale": 1, "imgSizeW": 0, "imgSizeH": 0, - "mapScale": 1.61953125, + "mapScale": 0.70078125, "dragDot": { - "x": 1036.5, - "y": 387.5 + "x": 448.5, + "y": 176.65207877461702 }, "gIdx": "1", - "labelText": "1", - "posX": 887.5, - "posY": 165.5, "skeJsonData": { - "url": "http://staging-teach.cdn.ireadabc.com/133a1f60719ed26247e35dc022d82862.json", - "name": "spineboy-pro.json" + "url": "https://teach.cdn.ireadabc.com/66c7c0847c33f7f95cb0035fe14c4405.json", + "name": "monkey_ske.json" }, "texJsonData": { - "url": "http://staging-teach.cdn.ireadabc.com/e0945b8265ea3b8053afb814c6b849d3.atlas", - "name": "spineboy-pro.atlas" + "url": "https://teach.cdn.ireadabc.com/98a8272cd2d97047b090ff10e948b978.json", + "name": "monkey_tex.json" }, "texPngData": { - "url": "http://staging-teach.cdn.ireadabc.com/517553f50224915148f9efc5b7556798.png", - "name": "spineboy-pro.png" + "url": "https://teach.cdn.ireadabc.com/c35ced408ad68a52c4ec5375373d3627.png", + "name": "monkey_tex.png" }, - "animType": "spine", "rect": { - "x": 48.05, - "y": 65.5, - "width": 205, - "height": 200 + "x": 128.83, + "y": 171, + "width": 0, + "height": 0 } }, { - "id": "1659334098930", + "id": "1650546079000", "index": 1, - "audio_url": "http://staging-teach.cdn.ireadabc.com/16eb06a6beb9e4fa77c9b5d2d643ab29.mp3", + "audio_url": "https://teach.cdn.ireadabc.com/f9edc84a669688c5abddd55e2aab015d.mp3", "itemType": "rect", - "fontScale": 1.61953125, + "fontScale": 0.70078125, "imgScale": 1, "imgSizeW": 0, "imgSizeH": 0, - "mapScale": 1.61953125, + "mapScale": 0.70078125, "dragDot": { - "x": 1036.5, - "y": 387.5 + "x": 448.5, + "y": 170.54984583761566 }, "gIdx": "0", - "labelText": "1", - "posX": 1212.5, - "posY": 643.5, + "labelText": "21.3", + "posX": 692.4127500193598, + "posY": 218.14695959185556, "skeJsonData": { - "url": "http://staging-teach.cdn.ireadabc.com/679fed26daa464819d553de6331b3552.json", - "name": "alien-pro.json" + "url": "https://teach.cdn.ireadabc.com/e3c67a25dd3bb34fe113e126e6e1cc81.json", + "name": "ox_ske.json" }, "texJsonData": { - "url": "http://staging-teach.cdn.ireadabc.com/65d8214c6b5c5d0496e17adb0408276a.atlas", - "name": "alien-pro.atlas" + "url": "https://teach.cdn.ireadabc.com/81d487bf31d3a4d0f25f44c184ba9233.json", + "name": "ox_tex.json" }, "texPngData": { - "url": "http://staging-teach.cdn.ireadabc.com/a319b372899239325b90bb4ec07b4970.png", - "name": "alien-pro.png" + "url": "https://teach.cdn.ireadabc.com/e199392b52a735f6e37a6815ec3bb10e.png", + "name": "ox_tex.png" }, - "animType": "spine", "rect": { - "x": 375.56, - "y": 543.5, - "width": 200, - "height": 200 + "x": 159.34, + "y": 138.66, + "width": 38.83, + "height": 38.83 + } + }, { + "id": "1650546232189", + "index": 2, + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "1", + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/0a3ea93c62ff4087859ed587020c53b5.json", + "name": "car_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/6000e4fbbb95f545afa5456c64d8c7d1.json", + "name": "car_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/75e9972c15d2a67deedf60d448fd4e69.png", + "name": "car_tex.png" + }, + "rect": { + "x": 36.4, + "y": 78.56, + "width": 184.87, + "height": 184.87 + } + }, { + "id": "1650546321127", + "index": 3, + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "1", + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/d4c1e1abcf3d8f5415747fd2599b8a8c.json", + "name": "Chair_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/1d7254eb7fa3008e8178347bb944cdcb.json", + "name": "Chair_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/48e85e8ff384eed72dfe865fc981e18c.png", + "name": "Chair_tex.png" + }, + "rect": { + "x": 36.4, + "y": 78.56, + "width": 184.87, + "height": 184.87 + } + }, { + "id": "1650546335240", + "index": 4, + "audio_url": "https://teach.cdn.ireadabc.com/6182d46bad09fccb8934217d33557204.mp3", + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "0", + "labelText": "53", + "posX": 452.5, + "posY": 129, + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/b462d80c21aa75995dd99f0f43ccf1e6.json", + "name": "quilt_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/866c9e2987870947fc63bce108ef157a.json", + "name": "quilt_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/d952c37f40c3cf07e024edfd4416423e.png", + "name": "quilt_tex.png" + }, + "rect": { + "x": 71.99, + "y": 100.75, + "width": 50.83, + "height": 36.97 + } + }, { + "id": "1650546644333", + "index": 5, + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "1", + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/6b8a1a7b0fd23686ea60465279cd4da0.json", + "name": "robot_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/31a74ed95fe48adab00702675811c3a8.json", + "name": "robot_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/e57052537d89356b0a79d8cb77980219.png", + "name": "robot_tex.png" + }, + "rect": { + "x": 36.4, + "y": 78.56, + "width": 184.87, + "height": 184.87 + } + }, { + "id": "1650546658697", + "index": 6, + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "1", + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/bf3616060460439eeb3fd5227370e15a.json", + "name": "panda_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/2dafeb25c973c910035ff7ed1a6a6334.json", + "name": "panda_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/75d90b05345fa470285ac488cb205cfd.png", + "name": "panda_tex.png" + }, + "rect": { + "x": 36.4, + "y": 78.56, + "width": 184.87, + "height": 184.87 + } + }, { + "id": "1650546672448", + "index": 7, + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "1", + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/5feff811b0117dd8e67973072e60d310.json", + "name": "queen_1_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/bb5856b92b09c5fe7a1da00bb68134ca.json", + "name": "queen_1_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/f4e5a138b086ef3dcfa57432543b66e9.png", + "name": "queen_1_tex.png" + }, + "animType": "dragonBone", + "rect": { + "x": 36.4, + "y": 78.56, + "width": 184.87, + "height": 184.87 + } + }, { + "id": "1650546687069", + "index": 8, + "audio_url": "https://teach.cdn.ireadabc.com/301858df7b07e661426a006acb26059c.mp3", + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "0", + "labelText": "42.5", + "posX": 512.3883524629834, + "posY": 259.83617125849, + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/f3a8efcd1850ee8a6cee89a18e86dc4a.json", + "name": "milk_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/73b05f19d419bd3ac17c2b92dab88423.json", + "name": "milk_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/e38375da46f85a23202d5cbc812d62e4.png", + "name": "milk_tex.png" + }, + "rect": { + "x": 37.72, + "y": 168.1, + "width": 21.17, + "height": 40.34 + } + }, { + "id": "1650547060490", + "index": 9, + "audio_url": "https://teach.cdn.ireadabc.com/05e5b29aeffa4ef94bcc5b23167aec90.mp3", + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "0", + "labelText": "47.7", + "posX": 483.22135734006736, + "posY": 245.38039407076505, + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/99a6e6d9361eca7e51ed34ca2e0fd017.json", + "name": "bird_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/6a379ddbe6df1806368c43c8ee82332d.json", + "name": "bird_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/cf04c63104d89511902578944061f980.png", + "name": "bird_tex.png" + }, + "rect": { + "x": 17.91, + "y": 140.83, + "width": 18.52, + "height": 73.95 + } + }, { + "id": "1650547373869", + "index": 10, + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "1", + "labelText": "60", + "posX": 420.5, + "posY": 295, + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/7ebc28f3f339b16ca48d20f2a3eb44c1.json", + "name": "alligator_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/b04e8206fd217bd22dcdac1008393317.json", + "name": "alligator_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/b3990d94612bd3d6e25cf200f85e4334.png", + "name": "alligator_tex.png" + }, + "rect": { + "x": 16.06, + "y": 229.24, + "width": 103.52, + "height": 86.89 + } + }, { + "id": "1650547482398", + "index": 11, + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "1", + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/a19f2ed7c297c70c639e54e969d64593.json", + "name": "rabbit_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/4b4f8189cf79fadd7e6533ad84db96be.json", + "name": "rabbit_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/8f953c861eac94e4e22a8e4ec3eb56b5.png", + "name": "rabbit_tex.png" + }, + "rect": { + "x": 36.4, + "y": 78.56, + "width": 184.87, + "height": 184.87 + } + }, { + "id": "1650547496232", + "index": 12, + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "1", + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/89e0fc6085c294866142803b4ff267ba.json", + "name": "King_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/d6cfd2d9cd2cd9aff09ab7f03e287421.json", + "name": "King_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/8c02c3561a2eea0423cb1102200e76f9.png", + "name": "King_tex.png" + }, + "rect": { + "x": 36.4, + "y": 78.56, + "width": 184.87, + "height": 184.87 + } + }, { + "id": "1650547510648", + "index": 13, + "audio_url": "https://teach.cdn.ireadabc.com/717ee9713b18d32d38ee089c0abc85ea.mp3", + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "0", + "labelText": "10.2", + "posX": 641.6680134951944, + "posY": 288.93672702541255, + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/3b7113ebdedcae54be6d0b9633875b88.json", + "name": "net_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/fc810762f1f2025585e722e43e94137b.json", + "name": "net_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/5c90820da4f559280fee4579e8db2dbc.png", + "name": "net_tex.png" + }, + "rect": { + "x": 123.03, + "y": 183.02, + "width": 37.9, + "height": 52.68 + } + }, { + "id": "1650547555018", + "index": 14, + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "1", + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/0a5c8df5a23aca7a7540b87340c7608f.json", + "name": "ostrich_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/2478573c91d1a83fa038e7f6a9db8a85.json", + "name": "ostrich_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/4619ace67e5770e1fd7fc3ff76e7263e.png", + "name": "ostrich_tex.png" + }, + "rect": { + "x": 36.4, + "y": 78.56, + "width": 184.87, + "height": 184.87 + } + }, { + "id": "1650547573305", + "index": 15, + "audio_url": "https://teach.cdn.ireadabc.com/b7bc161c3a3ee143a53058691abf4fa9.mp3", + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "0", + "labelText": "15.9", + "posX": 670.8119839772754, + "posY": 137.87940870201697, + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/91e8ca03d1df89e4ec2404421d4c692f.json", + "name": "durazno_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/32d259b0194370625f8fe94b1ddc0a85.json", + "name": "durazno_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/8eef56b20e221a36fce1d672199859ff.png", + "name": "durazno_tex.png" + }, + "rect": { + "x": 146.92, + "y": 83.73, + "width": 32.34, + "height": 32.34 } }] - }; // return defaultData; + }; // return {"begin_audio":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","begin_sep_time":1,"guide_audio":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","playing_audio":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","right_audio":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","wrong_audio":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","wrong_audio1":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","wrong_audio2":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","end_audio":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","bgItem":{"url":"http://staging-teach.cdn.ireadabc.com/84ec6edc20bceaaa9dbe824092b6860d.png","rect":{"x":736.95,"y":0,"width":599.09,"height":775}},"hotZoneItemArr":[{"id":"1659333645573","index":0,"audio_url":"http://staging-teach.cdn.ireadabc.com/5a1a2670845bfe76662e86d9a3a69f81.mp3","itemType":"rect","fontScale":1.61953125,"imgScale":1,"imgSizeW":0,"imgSizeH":0,"mapScale":1.61953125,"dragDot":{"x":1036.5,"y":387.5},"gIdx":"1","labelText":"1","posX":887.5,"posY":165.5,"skeJsonData":{"url":"http://staging-teach.cdn.ireadabc.com/133a1f60719ed26247e35dc022d82862.json","name":"spineboy-pro.json"},"texJsonData":{"url":"http://staging-teach.cdn.ireadabc.com/e0945b8265ea3b8053afb814c6b849d3.atlas","name":"spineboy-pro.atlas"},"texPngData":{"url":"http://staging-teach.cdn.ireadabc.com/517553f50224915148f9efc5b7556798.png","name":"spineboy-pro.png"},"animType":"spine","rect":{"x":48.05,"y":65.5,"width":205,"height":200}},{"id":"1659334098930","index":1,"audio_url":"http://staging-teach.cdn.ireadabc.com/16eb06a6beb9e4fa77c9b5d2d643ab29.mp3","itemType":"rect","fontScale":1.61953125,"imgScale":1,"imgSizeW":0,"imgSizeH":0,"mapScale":1.61953125,"dragDot":{"x":1036.5,"y":387.5},"gIdx":"0","labelText":"1","posX":1212.5,"posY":643.5,"skeJsonData":{"url":"http://staging-teach.cdn.ireadabc.com/679fed26daa464819d553de6331b3552.json","name":"alien-pro.json"},"texJsonData":{"url":"http://staging-teach.cdn.ireadabc.com/65d8214c6b5c5d0496e17adb0408276a.atlas","name":"alien-pro.atlas"},"texPngData":{"url":"http://staging-teach.cdn.ireadabc.com/a319b372899239325b90bb4ec07b4970.png","name":"alien-pro.png"},"animType":"spine","rect":{"x":375.56,"y":543.5,"width":200,"height":200}}]} + // return defaultData; }, preloadItem: function preloadItem() { this.addPreloadImage(); @@ -997,8 +1471,9 @@ cc.Class({ if (_block.gIdx == '0' || _block.gIdx == '1') { (function () { - var n = new cc.Node(); - n.scale = 0.25; + var n = new cc.Node(); // n.scale = 0.25; + + n.scale = ground.width / groundBg.width; n.parent = ground; n.active = false; @@ -1016,8 +1491,7 @@ cc.Class({ n.height = height; n.active = true; // db.playAnimation('null', 0); // skeleton.setToSetupPose(); - - skeleton.setAnimation(0, 'enlarge', true); + // skeleton.setAnimation(0, 'enlarge', true); _this4._allAnimationNodes.push(n); @@ -1149,27 +1623,54 @@ cc.Class({ // this.initIcon(); // }, addRectNodeListener: function addRectNodeListener(data) { - var bg = cc.find("Canvas/frame-border/ground/bg"); + var _this5 = this; + + var bg = cc.find("Canvas/frame-border/ground/bg").parent; var rate = bg.scale * bg.width / this.data.bgItem.rect.width; var rectNode = new cc.Node(); rectNode.name = 'rect' + data.index; - bg.addChild(rectNode); + bg.addChild(rectNode, 20); var ctx = rectNode.addComponent(cc.Graphics); // 红色矩形 ctx.lineWidth = 4; ctx.strokeColor = cc.Color.BLACK; ctx.fillColor = cc.Color.WHITE.setA(100); var scale = rate / bg.scaleY; + console.log('scale~ : ', scale); rectNode.width = data.rect.width * scale; rectNode.height = data.rect.height * scale; - rectNode.x = -bg.width / 2 + data.rect.x * scale; - rectNode.y = bg.height / 2 - data.rect.height * scale - data.rect.y * scale; - rectNode.anchorX = rectNode.anchorY = 0; // if (pageData.bgItem.isShowDebugLine) { + rectNode.x = -bg.width / 2 + data.rect.x * scale + bg.x; + rectNode.y = bg.height / 2 - data.rect.height * scale - data.rect.y * scale + bg.y; + rectNode.anchorX = rectNode.anchorY = 0; + console.log('data: ', data); + console.log('rectNode: ', rectNode); // if (pageData.bgItem.isShowDebugLine) { - ctx.rect(0, 0, rectNode.width, rectNode.height); // } + ctx.rect(0, 0, rectNode.width, rectNode.height); // ctx.fillRect(0, 0, 200, 200); + // } ctx.stroke(); ctx.fill(); + rectNode.addComponent(cc.Button); + rectNode.on("click", function () { + console.log(" in rectNode click"); + + var _x = rectNode.x / bg.width; + + var _y = rectNode.y / bg.height; + + var _w = rectNode.width / bg.width; + + var _h = rectNode.height / bg.height; + + var pos = { + x: _x + _w / 2 + 0.5, + y: -(_y + _h / 2 - 0.5) + }; + _this5._lastFingerPosition = { + pos: pos, + dirty: true + }; + }); }, initBg: function initBg() { var bgNode = cc.find('Canvas/bg'); @@ -1249,4 +1750,4 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0cy9PUDE1L3NjZW5lL09QMTUuanMiXSwibmFtZXMiOlsicHVyZSIsImFjdGlvbnMiLCJzZW5kIiwicmFpc2UiLCJzZW5kUGFyZW50IiwiY2MiLCJDbGFzcyIsIkNvbXBvbmVudCIsInByb3BlcnRpZXMiLCJyaWdodEF1ZGlvIiwidHlwZSIsIkF1ZGlvQ2xpcCIsIndyb25nQXVkaW8iLCJsb2dvQ2F0IiwiTm9kZSIsInBsYXlBbmkiLCJpZHgiLCJuYW1lIiwib3B0aW9ucyIsInRpbWVzIiwiY2IiLCJjYWxsYmFjayIsIm5vZGUiLCJfZmlndXJlUG9pbnRSZWN0QXJyYXkiLCJkcmFnb25EaXNwbGF5IiwiZ2V0Q29tcG9uZW50IiwiZHJhZ29uQm9uZXMiLCJBcm1hdHVyZURpc3BsYXkiLCJzdGF0ZSIsInBsYXlBbmltYXRpb24iLCJvbkxvYWQiLCJfdGltZW91dElkcyIsIl9pbnRlcnZhbElkcyIsImluaXRTY2VuZURhdGEiLCJpbml0U2l6ZSIsIndpbmRvdyIsImNjYyIsIl9pbWFnZVJlc0xpc3QiLCJfYXVkaW9SZXNMaXN0IiwiX2FuaW1hUmVzTGlzdCIsIl9sYXN0RmluZ2VyUG9zaXRpb24iLCJfaGludHNOb2RlTGlzdCIsIl9hbGxBbmltYXRpb25Ob2RlcyIsInBvcyIsImRpcnR5IiwiX2Rlc2lnblNpemUiLCJfZnJhbWVTaXplIiwiX21hcFNjYWxlTWluIiwiX21hcFNjYWxlTWF4IiwiX2NvY29zU2NhbGUiLCJzY3JlZW5fc2l6ZSIsInZpZXciLCJnZXRGcmFtZVNpemUiLCJ3aWR0aCIsImhlaWdodCIsImRlc2lnbl9zaXplIiwiQ2FudmFzIiwiaW5zdGFuY2UiLCJkZXNpZ25SZXNvbHV0aW9uIiwiZiIsImZpdEhlaWdodCIsImZpdFdpZHRoIiwiZnJhbWVTaXplIiwiZ2V0RGVzaWduUmVzb2x1dGlvblNpemUiLCJzeCIsIndpblNpemUiLCJzeSIsIk1hdGgiLCJtaW4iLCJtYXgiLCJjcmVhdGVTdGF0ZU1hY2hpbmUiLCJjaGVjayIsInRhcmdldCIsImNvbmQiLCJjdHgiLCJldnQiLCJjb25zb2xlIiwibG9nIiwicXVlc3Rpb25JbmRleCIsInF1ZXN0aW9uc0NvdW50IiwiUXVlc3Rpb25TdGF0ZSIsImlkIiwiaW5pdGlhbCIsInN0YXRlcyIsImhpbnQiLCJpbnZva2UiLCJzcmMiLCJldmVudCIsInF1ZXN0aW9uUGxheVRpbWVzIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJxdWVzdGlvbnMiLCJhdWRpb191cmwiLCJvbkRvbmUiLCJvbkVycm9yIiwiYW5zd2VyIiwiYWZ0ZXIiLCJjb250ZXh0Iiwib25SZWNlaXZlIiwic2V0SW50ZXJ2YWwiLCJyZWdpb24iLCJyZXN1bHQiLCJjaGVja0luUmVnaW9uIiwicmVjdCIsInB1c2giLCJjbGVhckludGVydmFsIiwib24iLCJSSUdIVCIsIldST05HIiwicmlnaHQiLCJhbiIsImFjdGl2ZSIsImRkTG9nb0NhdCIsIm9uY2UiLCJFdmVudE9iamVjdCIsIkNPTVBMRVRFIiwid3JvbmciLCJtYXhRdWVzdGlvblRyeVRpbWVzIiwid3JvbmdFZmZlY3QiLCJpbmNsdWRlcyIsImRhdGEiLCJpc1NwaW5lIiwic2tlbGV0b24iLCJzcCIsIlNrZWxldG9uIiwic2V0VG9TZXR1cFBvc2UiLCJzZXRUaW1lb3V0Iiwic2V0QW5pbWF0aW9uIiwiUXVlc3Rpb25zQXJyYXlTdGF0dXMiLCJwbGF5IiwibmV4dCIsIkNIRUNLIiwibGVuZ3RoIiwiYmVnaW4iLCJjb3Vyc2V3YXJlIiwib3Blbk9zbW9GaW5nZXJSZWFkIiwiaXNPcGVuZWRPc21vRmluZ2VyUmVhZCIsImJlZ2luX2F1ZGlvIiwiZ3VpZGUiLCJndWlkZV9hdWRpbyIsInBsYXlpbmciLCJlbnRyeSIsImFzc2V0TWFuYWdlciIsImxvYWRSZW1vdGUiLCJwbGF5aW5nX2F1ZGlvIiwiZXJyIiwiYXVkaW9DbGlwIiwiYXVkaW9FbmdpbmUiLCJwbGF5TXVzaWMiLCJmb3JFYWNoIiwiYmxvY2siLCJleGl0Iiwic3RvcE11c2ljIiwiTkVYVCIsImVuZCIsImNsb3NlT3Ntb0ZpbmdlclJlYWQiLCJlbmRfYXVkaW8iLCJpIiwidCIsImsiLCJfYXJtYXR1cmVLZXkiLCJhZGRFdmVudExpc3RlbmVyIiwiYmVnaW5fc2VwX3RpbWUiLCJnYW1lTWFjaGluZSIsImdhbWVNYWNoaW5lU2VydmljZSIsIm9uVHJhbnNpdGlvbiIsInN0YXJ0IiwiZ2V0RGF0YSIsImJpbmQiLCJnZXREZWZhdWx0RGF0YSIsIkpTT04iLCJwYXJzZSIsInN0cmluZ2lmeSIsInByZWxvYWRJdGVtIiwiYWlyIiwib3Ntb0ZpbmdlclJlYWRDYWxsYmFjayIsInJlc3VsdE9iaiIsImZpbmdlcl9wb3NfaW5fcGFnZSIsInAiLCJ4IiwieSIsImRlYnVnUG9pbnRlciIsImlzRGVidWciLCJyIiwidyIsImgiLCJmdW5jIiwibWlkZGxlTGF5ZXIiLCJmaW5kIiwibWlkZGxlTGF5ZXJDb21wb25lbnQiLCJhZGRQcmVsb2FkSW1hZ2UiLCJhZGRQcmVsb2FkQXVkaW8iLCJhZGRQcmVsb2FkQW5pbWEiLCJwcmVsb2FkIiwidXJsIiwiYmdJdGVtIiwiaG90Wm9uZUl0ZW1BcnIiLCJxIiwiZ0lkeCIsInRleFBuZ0RhdGEiLCJwaWNfdXJsIiwicHJlcGFyZUF1ZGlvQ2xpcCIsImtleSIsIndyb25nX2F1ZGlvIiwicmlnaHRfYXVkaW8iLCJ3cm9uZ19hdWRpbzEiLCJ3cm9uZ19hdWRpbzIiLCJib3hEZWJ1Z2dlciIsIlBPSU5URVJfTk9ERSIsInBhcmVudCIsImFkZENvbXBvbmVudCIsIkdyYXBoaWNzIiwiZ3JhcCIsImNsZWFyIiwiZ3JvdW5kIiwiYmFzZVciLCJiYXNlSCIsInB4IiwicHkiLCJwbiIsImZpbGxDb2xvciIsImNvbG9yIiwiY2lyY2xlIiwiZmlsbCIsInN0cm9rZSIsImRlYnVnR3JhcGhpY3MiLCJjYW52YXMiLCJiZ1ciLCJiZ0giLCJzY2FsZVgiLCJzY2FsZVkiLCJhZGRlZCIsImFyZWEiLCJkbiIsImxibE5vZGUiLCJsYmwiLCJMYWJlbCIsInN0cmluZyIsInNrZUpzb25EYXRhIiwic3Vic3RyaW5nIiwiZyIsImIiLCJyeCIsInJ5IiwicnciLCJyaCIsImZpbGxSZWN0IiwicHJlbG9hZEFyciIsImNvbmNhdCIsImxvYWRBbnkiLCJpdGVtIiwiZ3JvdW5kQmciLCJiYXNlUmVjdCIsInNmIiwiZ3MiLCJTcHJpdGUiLCJzcHJpdGVGcmFtZSIsImRiQ291bnQiLCJmaW5pc2hEYkNvdW50IiwiczEiLCJpbWdTaXplVyIsImltZ1NpemVIIiwic3ByIiwic2NhbGUiLCJuIiwiYW5pbVR5cGUiLCJ0ZXgiLCJhdGxhcyIsInRleEpzb25EYXRhIiwic2tlIiwidGhlbiIsImxvYWRFbmQiLCJkYiIsInJlY3RJbmZvIiwibGFiZWxUZXh0IiwiaXNOYU4iLCJkZWJ1ZyIsInNldERpc3BsYXlTdGF0cyIsImhpZGVBaXJDbGFzc0xvYWRpbmciLCJpbml0RGF0YSIsImluaXRCZyIsIl9jYW50b3VjaCIsImFkZFJlY3ROb2RlTGlzdGVuZXIiLCJiZyIsInJhdGUiLCJyZWN0Tm9kZSIsImluZGV4IiwiYWRkQ2hpbGQiLCJsaW5lV2lkdGgiLCJzdHJva2VDb2xvciIsIkNvbG9yIiwiQkxBQ0siLCJXSElURSIsInNldEEiLCJhbmNob3JYIiwiYW5jaG9yWSIsImJnTm9kZSIsIm9uRGVzdHJveSIsImNsZWFyVGltZW91dCIsInN0b3BDaGlsZCIsInN0b3AiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7SUFDUUEsT0FBb0NDLGdCQUFwQ0Q7SUFBT0UsT0FBNkJELGdCQUE3QkM7SUFBTUMsUUFBdUJGLGdCQUF2QkU7SUFBT0MsYUFBZ0JILGdCQUFoQkc7QUFHNUJDLEVBQUUsQ0FBQ0MsS0FBSCxDQUFTO0FBRVIsYUFBU0QsRUFBRSxDQUFDRSxTQUZKO0FBSVJDLEVBQUFBLFVBQVUsRUFBRTtBQUNYO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtB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RSxJQWpsQ0w7QUFrbENSQyxFQUFBQSxZQUFZLEVBQUUsSUFsbENOO0FBbWxDUjtBQUNBMFEsRUFBQUEsU0FwbENRLHVCQW9sQ0k7QUFDWDlOLElBQUFBLE9BQU8sQ0FBQ0MsR0FBUixDQUFZLGdCQUFaOztBQUNBLFNBQUs5QyxXQUFMLENBQWlCdUgsT0FBakIsQ0FBeUIsVUFBQXJFLEVBQUUsRUFBSTtBQUM5QjBOLE1BQUFBLFlBQVksQ0FBQzFOLEVBQUQsQ0FBWjtBQUNBLEtBRkQ7O0FBR0EsU0FBS2pELFlBQUwsQ0FBa0JzSCxPQUFsQixDQUEwQixVQUFBckUsRUFBRSxFQUFJO0FBQy9CeUIsTUFBQUEsYUFBYSxDQUFDekIsRUFBRCxDQUFiO0FBQ0EsS0FGRDs7QUFHQSxTQUFLb0Ysa0JBQUwsQ0FBd0J1SSxTQUF4QjtBQUNBLFNBQUt2SSxrQkFBTCxDQUF3QndJLElBQXhCOztBQUNBLFFBQUcxUSxNQUFNLENBQUNvRyxVQUFQLElBQXFCcEcsTUFBTSxDQUFDb0csVUFBUCxDQUFrQnFCLG1CQUExQyxFQUErRDtBQUM5RCxVQUFJLEtBQUtuQixzQkFBVCxFQUFpQztBQUNoQ3RHLFFBQUFBLE1BQU0sQ0FBQ29HLFVBQVAsQ0FBa0JxQixtQkFBbEI7QUFDQTtBQUNEO0FBQ0Q7QUFubUNPLENBQVQiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG9uSG9tZXdvcmtGaW5pc2gsIFJhbmRvbUludCwgcGxheUF1ZGlvQnlVcmwsIGxvYWREcmFnb25Cb25lcywgZ2V0U3ByaXRlRnJpbWVCeVVybCwgbG9hZFNwaW5lIH0gZnJvbSBcIi4uL3NjcmlwdC91dGlsXCI7XG5pbXBvcnQgeyBkZWZhdWx0RGF0YSB9IGZyb20gXCIuLi9zY3JpcHQvZGVmYXVsdERhdGFcIjtcbmltcG9ydCB7IGFzc2lnbiwgY3JlYXRlTWFjaGluZSwgaW50ZXJwcmV0LCBhY3Rpb25zLCBmb3J3YXJkVG8sIG1hdGNoZXNTdGF0ZSAgfSBmcm9tIFwiLi4vc2NyaXB0L3hzdGF0ZVwiO1xuY29uc3QgeyBwdXJlICwgc2VuZCwgcmFpc2UsIHNlbmRQYXJlbnQgIH0gPSBhY3Rpb25zO1xuXG5cbmNjLkNsYXNzKHtcblxuXHRleHRlbmRzOiBjYy5Db21wb25lbnQsXG5cblx0cHJvcGVydGllczoge1xuXHRcdC8qYW50OiB7XG5cdFx0XHRkZWZhdWx0OiBudWxsLFxuXHRcdFx0dHlwZTogY2MuTm9kZSxcblx0XHR9LFxuXHRcdGFwcGxlOiB7XG5cdFx0XHRkZWZhdWx0OiBudWxsLFxuXHRcdFx0dHlwZTogY2MuTm9kZSxcblx0XHR9LFxuXHRcdGJpcmQ6IHtcblx0XHRcdGRlZmF1bHQ6IG51bGwsXG5cdFx0XHR0eXBlOiBjYy5Ob2RlLFxuXHRcdH0sXG5cdFx0Y2FyOiB7XG5cdFx0XHRkZWZhdWx0OiBudWxsLFxuXHRcdFx0dHlwZTogY2MuTm9kZSxcblx0XHR9LFxuXHRcdGNhdDoge1xuXHRcdFx0ZGVmYXVsdDogbnVsbCxcblx0XHRcdHR5cGU6IGNjLk5vZGUsXG5cdFx0fSxcblx0XHRjb3c6IHtcblx0XHRcdGRlZmF1bHQ6IG51bGwsXG5cdFx0XHR0eXBlOiBjYy5Ob2RlLFxuXHRcdH0sXG5cdFx0ZHVjazoge1xuXHRcdFx0ZGVmYXVsdDogbnVsbCxcblx0XHRcdHR5cGU6IGNjLk5vZGUsXG5cdFx0fSxcblx0XHRlZ2c6IHtcblx0XHRcdGRlZmF1bHQ6IG51bGwsXG5cdFx0XHR0eXBlOiBjYy5Ob2RlLFxuXHRcdH0sXG5cdFx0ZmFybWVyOiB7XG5cdFx0XHRkZWZhdWx0OiBudWxsLFxuXHRcdFx0dHlwZTogY2MuTm9kZSxcblx0XHR9LFxuXHRcdGZpc2g6IHtcblx0XHRcdGRlZmF1bHQ6IG51bGwsXG5cdFx0XHR0eXBlOiBjYy5Ob2RlLFxuXHRcdH0sXG5cdFx0Z2lybDoge1xuXHRcdFx0ZGVmYXVsdDogbnVsbCxcblx0XHRcdHR5cGU6IGNjLk5vZGUsXG5cdFx0fSxcblx0XHRoZW46IHtcblx0XHRcdGRlZmF1bHQ6IG51bGwsXG5cdFx0XHR0eXBlOiBjYy5Ob2RlLFxuXHRcdH0sXG5cdFx0aG91c2U6IHtcblx0XHRcdGRlZmF1bHQ6IG51bGwsXG5cdFx0XHR0eXBlOiBjYy5Ob2RlLFxuXHRcdH0sKi9cblx0XHRyaWdodEF1ZGlvOiB7XG5cdFx0XHRkZWZhdWx0OiBudWxsLFxuXHRcdFx0dHlwZTogY2MuQXVkaW9DbGlwLFxuXHRcdH0sXG5cdFx0d3JvbmdBdWRpbzoge1xuXHRcdFx0ZGVmYXVsdDogbnVsbCxcblx0XHRcdHR5cGU6IGNjLkF1ZGlvQ2xpcCxcblx0XHR9LFxuXHRcdGxvZ29DYXQ6IHtcblx0XHRcdGRlZmF1bHQ6IG51bGwsXG5cdFx0XHR0eXBlOiBjYy5Ob2RlXG5cdFx0fVxuXG5cdH0sXG5cblx0cGxheUFuaShpZHgsIG5hbWUsIG9wdGlvbnMpIHtcblx0XHRjb25zdCB0aW1lcyA9IChvcHRpb25zICYmIG9wdGlvbnMudGltZXMpIHx8IDE7XG5cdFx0Y29uc3QgY2IgPSAob3B0aW9ucyAmJiBvcHRpb25zLmNhbGxiYWNrKSB8fCBudWxsO1xuXHRcdC8vIGNvbnN0IGNhdCA9IGNjLmZpbmQoYENhbnZhcy9mcmFtZS1ib3JkZXIvZ3JvdW5kLyR7bm9kZX1gKTtcblx0XHRjb25zdCBub2RlID0gdGhpcy5fZmlndXJlUG9pbnRSZWN0QXJyYXlbaWR4XS5ub2RlXG5cdFx0dmFyIGRyYWdvbkRpc3BsYXkgPSBub2RlLmdldENvbXBvbmVudChkcmFnb25Cb25lcy5Bcm1hdHVyZURpc3BsYXkpO1xuXG5cdFx0Y29uc3Qgc3RhdGUgPSBkcmFnb25EaXNwbGF5LnBsYXlBbmltYXRpb24obmFtZSwgdGltZXMpO1xuXHRcdC8vIGRyYWdvbkRpc3BsYXkuYWRkRXZlbnRMaXN0ZW5lcihkcmFnb25Cb25lcy5FdmVudE9iamVjdC5DT01QTEVURSwgKGV2ZW50KSA9PiB7XG5cdFx0Ly8gXHQvL1RPRE8g6L+Z6YeM5YaZ6Kem5Y+R5LqL5Lu2XG5cdFx0Ly8gXHQvL2V2ZW50Lm5hbWXkuLrkuovku7blkI3np7Bcblx0XHQvLyBcdGNvbnNvbGUubG9nKGV2ZW50Lm5hbWUpXG5cdFx0Ly8gfSwgdGhpcyk7XG5cdFx0Ly8gYW5pbWF0aW9uRGlzcGxheS5hZGRFdmVudExpc3RlbmVyKGRyYWdvbkJvbmVzLkV2ZW50T2JqZWN0LkNPTVBMRVRFLCBjb21wbGV0ZUNhbGxiYWNrKTtcblx0XHRyZXR1cm4gc3RhdGU7XG5cdH0sXG5cdC8vIOeUn+WRveWRqOacnyBvbkxvYWRcblx0b25Mb2FkKCkge1xuXHRcdHRoaXMuX3RpbWVvdXRJZHMgPSBbXTtcblx0XHR0aGlzLl9pbnRlcnZhbElkcyA9IFtdO1xuXHRcdHRoaXMuaW5pdFNjZW5lRGF0YSgpO1xuXHRcdHRoaXMuaW5pdFNpemUoKTtcblx0XHR3aW5kb3cuY2NjID0gdGhpcztcblx0fSxcblxuXHRfaW1hZ2VSZXNMaXN0OiBudWxsLFxuXHRfYXVkaW9SZXNMaXN0OiBudWxsLFxuXHRfYW5pbWFSZXNMaXN0OiBudWxsLFxuXG5cdF9sYXN0RmluZ2VyUG9zaXRpb246IG51bGwsXG5cblx0X2hpbnRzTm9kZUxpc3QgOiBudWxsLFxuXHRfZmlndXJlUG9pbnRSZWN0QXJyYXk6IG51bGwsXG5cblx0X2FsbEFuaW1hdGlvbk5vZGVzOiBudWxsLFxuXG5cdGluaXRTY2VuZURhdGEoKSB7XG5cdFx0dGhpcy5faW1hZ2VSZXNMaXN0ID0gW107XG5cdFx0dGhpcy5fYXVkaW9SZXNMaXN0ID0gW107XG5cdFx0dGhpcy5fYW5pbWFSZXNMaXN0ID0gW107XG5cblx0XHR0aGlzLl9hbGxBbmltYXRpb25Ob2RlcyA9IFtdO1xuXHRcdHRoaXMuX2hpbnRzTm9kZUxpc3QgPSBbXTtcblx0XHR0aGlzLl9sYXN0RmluZ2VyUG9zaXRpb249IHtcblx0XHRcdHBvczogbnVsbCxcblx0XHRcdGRpcnR5OiBmYWxzZVxuXHRcdH07XG5cdFx0dGhpcy5fZmlndXJlUG9pbnRSZWN0QXJyYXkgPSBbXTtcblx0fSxcblxuXHRfZGVzaWduU2l6ZTogbnVsbCwgIC8vIOiuvuiuoeWIhui+qOeOh1xuXHRfZnJhbWVTaXplOiBudWxsLCAgLy8g5bGP5bmV5YiG6L6o546HXG5cdF9tYXBTY2FsZU1pbjogbnVsbCwgIC8vIOWcuuaZr+S4reW4uOeUqOe8qeaUvu+8iOWPluWkp+WAvO+8iVxuXHRfbWFwU2NhbGVNYXg6IG51bGwsICAvLyDlnLrmma/kuK3luLjnlKjnvKnmlL7vvIjlj5blsI/lgLzvvIlcblx0X2NvY29zU2NhbGU6IG51bGwsICAvLyBjb2NvcyDoh6rnvKnmlL4g77yI6L6D5bCR55So5Yiw77yJXG5cdFxuXHRpbml0U2l6ZSgpIHtcblx0XHQvLyDms6jmhI9jYy53aW5TaXpl5Y+q5pyJ5Zyo6YCC6YWN5ZCOKOS/ruaUuWZpdEhlaWdodC9maXRXaWR0aOWQjinmiY3og73ojrflj5bliLDmraPnoa7nmoTlgLws5Zug5q2k5L2/55SoY2MuZ2V0RnJhbWVTaXplKCnmnaXojrflj5bliJ3lp4vnmoTlsY/luZXlpKflsI9cblx0XHRsZXQgc2NyZWVuX3NpemUgPSBjYy52aWV3LmdldEZyYW1lU2l6ZSgpLndpZHRoIC8gY2Mudmlldy5nZXRGcmFtZVNpemUoKS5oZWlnaHRcblx0XHRsZXQgZGVzaWduX3NpemUgPSBjYy5DYW52YXMuaW5zdGFuY2UuZGVzaWduUmVzb2x1dGlvbi53aWR0aCAvIGNjLkNhbnZhcy5pbnN0YW5jZS5kZXNpZ25SZXNvbHV0aW9uLmhlaWdodFxuXHRcdGxldCBmID0gc2NyZWVuX3NpemUgPj0gZGVzaWduX3NpemVcblx0XHRjYy5DYW52YXMuaW5zdGFuY2UuZml0SGVpZ2h0ID0gZlxuXHRcdGNjLkNhbnZhcy5pbnN0YW5jZS5maXRXaWR0aCA9ICFmXG5cblx0XHRjb25zdCBmcmFtZVNpemUgPSBjYy52aWV3LmdldEZyYW1lU2l6ZSgpO1xuXHRcdHRoaXMuX2ZyYW1lU2l6ZSA9IGZyYW1lU2l6ZTtcblxuXHRcdHRoaXMuX2Rlc2lnblNpemUgPSBjYy52aWV3LmdldERlc2lnblJlc29sdXRpb25TaXplKCk7XG5cblx0XHRsZXQgc3ggPSBjYy53aW5TaXplLndpZHRoIC8gZnJhbWVTaXplLndpZHRoO1xuXHRcdGxldCBzeSA9IGNjLndpblNpemUuaGVpZ2h0IC8gZnJhbWVTaXplLmhlaWdodDtcblx0XHR0aGlzLl9jb2Nvc1NjYWxlID0gTWF0aC5taW4oc3gsIHN5KTtcblxuXHRcdHN4ID0gZnJhbWVTaXplLndpZHRoIC8gdGhpcy5fZGVzaWduU2l6ZS53aWR0aDtcblx0XHRzeSA9IGZyYW1lU2l6ZS5oZWlnaHQgLyB0aGlzLl9kZXNpZ25TaXplLmhlaWdodDtcblx0XHR0aGlzLl9tYXBTY2FsZU1pbiA9IE1hdGgubWluKHN4LCBzeSkgKiB0aGlzLl9jb2Nvc1NjYWxlO1xuXHRcdHRoaXMuX21hcFNjYWxlTWF4ID0gTWF0aC5tYXgoc3gsIHN5KSAqIHRoaXMuX2NvY29zU2NhbGU7XG5cdH0sXG5cdGNyZWF0ZVN0YXRlTWFjaGluZSgpe1xuXHRcdGNvbnN0IGNoZWNrID0gIFtcblx0XHRcdFx0XHRcdFx0eyB0YXJnZXQ6ICcjZ2FtZS5lbmQnLCBjb25kOiAoY3R4LCBldnQpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnW2Fuc3dlciBORVhUXSBjaGVjayBpZiBlbmQnLCBjdHgucXVlc3Rpb25JbmRleCA+PSBjdHgucXVlc3Rpb25zQ291bnQgLSAxKTtcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gY3R4LnF1ZXN0aW9uSW5kZXggPj0gY3R4LnF1ZXN0aW9uc0NvdW50IC0xXG5cblx0XHRcdFx0XHRcdFx0fSB9LFxuICAgICAgICBcdFx0XHRcdFx0eyB0YXJnZXQ6ICdoaW50JyB9IC8vIHJlZW50ZXIgJ2hpbnQnIHN0YXRlXG5cdFx0XHRcdFx0XHRdXG5cdFx0Y29uc3QgUXVlc3Rpb25TdGF0ZSA9IHtcblx0XHRcdGlkOiAncXVlc3Rpb24nLFxuXHRcdFx0aW5pdGlhbDogJ2hpbnQnLFxuXHRcdFx0c3RhdGVzOiB7XG5cdFx0XHRcdGhpbnQ6IHtcblx0XHRcdFx0XHRpbnZva2U6IHtcblx0XHRcdFx0XHRcdHNyYzogKGN0eCwgZXZlbnQpID0+IHtcblx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coYFtoaW50XSBwbGF5IHF1ZXN0aW9uICR7Y3R4LnF1ZXN0aW9uSW5kZXh9OiAke2N0eC5xdWVzdGlvblBsYXlUaW1lcyB9IGF1ZGlvYCk7XG5cdFx0XHRcdFx0XHRcdGN0eC5xdWVzdGlvblBsYXlUaW1lcyArPSAxO1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUscmVqZWN0KSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0cGxheUF1ZGlvQnlVcmwoY3R4LnF1ZXN0aW9uc1tjdHgucXVlc3Rpb25JbmRleF0uYXVkaW9fdXJsLCAoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnaGludCBmaW5pc2gnKTtcblx0XHRcdFx0XHRcdFx0XHRcdHJlc29sdmUoKVxuXHRcdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0b25Eb25lOiAnYW5zd2VyJyxcblx0XHRcdFx0XHRcdG9uRXJyb3I6ICdhbnN3ZXInXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LFxuXHRcdFx0XHRhbnN3ZXI6IHtcblx0XHRcdFx0XHRhZnRlcjoge1xuXHRcdFx0XHRcdFx0ODAwMDogW1xuICAgICAgICBcdFx0XHRcdFx0eyBcblx0XHRcdFx0XHRcdFx0XHR0YXJnZXQ6ICd3cm9uZycsXG5cdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdH0gLy8gcmVlbnRlciAnaGludCcgc3RhdGVcblx0XHRcdFx0XHRcdF1cblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0aW52b2tlOiB7XG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdHNyYzogKGNvbnRleHQsIGV2ZW50KSA9PiAoY2FsbGJhY2ssIG9uUmVjZWl2ZSkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ1thbnN3ZXJdIHRoaW5raW5nIGFuZCBwbGF5aW5nJyk7XG5cdFx0XHRcdFx0XHRcdC8vIGNoZWNrIGV2ZXJ5IHNlY29uZFxuXHRcdFx0XHRcdFx0XHRjb25zdCBpZCA9IHNldEludGVydmFsKCgpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhcImFhYWFhYVwiKTtcblx0XHRcdFx0XHRcdFx0XHRpZiAoIXRoaXMuX2xhc3RGaW5nZXJQb3NpdGlvbi5kaXJ0eSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRjb25zdCByZWdpb24gPSBjb250ZXh0LnF1ZXN0aW9uc1tjb250ZXh0LnF1ZXN0aW9uSW5kZXhdO1xuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IHJlc3VsdCA9IHRoaXMuY2hlY2tJblJlZ2lvbihyZWdpb24ucmVjdCk7XG5cdFx0XHRcdFx0XHRcdFx0aWYgKHJlc3VsdCA9PT0gbnVsbCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnW0dlbmlzZSBKU10gY2hlY2tJblJlZ2lvbicgKyByZXN1bHQpXG5cdFx0XHRcdFx0XHRcdFx0aWYgKHJlc3VsdCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0Y2FsbGJhY2soJ1JJR0hUJylcblx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdFx0Y2FsbGJhY2soJ1dST05HJylcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH0sIDMwMCk7XG5cdFx0XHRcdFx0XHRcdHRoaXMuX2ludGVydmFsSWRzLnB1c2goaWQpO1xuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHQvLyBQZXJmb3JtIGNsZWFudXBcblx0XHRcdFx0XHRcdFx0cmV0dXJuICgpID0+IGNsZWFySW50ZXJ2YWwoaWQpO1xuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0b246IHtcblx0XHRcdFx0XHRcdFJJR0hUOiB7XG5cdFx0XHRcdFx0XHRcdHRhcmdldDogJ3JpZ2h0Jyxcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRXUk9ORzoge1xuXHRcdFx0XHRcdFx0XHR0YXJnZXQ6ICd3cm9uZycsXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LFxuXHRcdFx0XHRcblx0XHRcdFx0cmlnaHQ6IHtcblx0XHRcdFx0XHRpbnZva2U6IHtcblx0XHRcdFx0XHRcdHNyYzogKGNvbnRleHQsIGV2ZW50KSA9PiB7XG5cdFx0XHRcdFx0XHRcdHRoaXMuX2xhc3RGaW5nZXJQb3NpdGlvbi5wb3MgPSBudWxsO1xuXHRcdFx0XHRcdFx0XHR0aGlzLl9sYXN0RmluZ2VyUG9zaXRpb24uZGlydHkgPSBmYWxzZTtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnYW5zd2VyIHJpZ2h0Jyk7XG5cdFx0XHRcdFx0XHRcdFx0Ly8gdGhpcy5wbGF5QW5pKGNvbnRleHQucXVlc3Rpb25JbmRleCwgJ25vcm1hbCcpXG5cdFx0XHRcdFx0XHRcdFx0Y29uc3QgYW4gPSBjb250ZXh0LnF1ZXN0aW9uc1tjb250ZXh0LnF1ZXN0aW9uSW5kZXhdLm5vZGU7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ2luIHJpZ2h0ICcgKyAodHlwZW9mIGFuKSlcblx0XHRcdFx0XHRcdFx0XHRhbi5hY3RpdmUgPSB0cnVlO1xuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IGRyYWdvbkRpc3BsYXkgPSBhbi5nZXRDb21wb25lbnQoZHJhZ29uQm9uZXMuQXJtYXR1cmVEaXNwbGF5KTtcblx0XHRcdFx0XHRcdFx0XHRkcmFnb25EaXNwbGF5LnBsYXlBbmltYXRpb24oJ25vcm1hbCcsIDApO1xuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IGRkTG9nb0NhdCA9IHRoaXMubG9nb0NhdC5nZXRDb21wb25lbnQoZHJhZ29uQm9uZXMuQXJtYXR1cmVEaXNwbGF5KVxuXHRcdFx0XHRcdFx0XHRcdGRkTG9nb0NhdC5wbGF5QW5pbWF0aW9uKCdyaWdodCcsIDEpXG5cdFx0XHRcdFx0XHRcdFx0ZGRMb2dvQ2F0Lm9uY2UoZHJhZ29uQm9uZXMuRXZlbnRPYmplY3QuQ09NUExFVEUsIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5sb2dvQ2F0LmdldENvbXBvbmVudChkcmFnb25Cb25lcy5Bcm1hdHVyZURpc3BsYXkpLnBsYXlBbmltYXRpb24oJ25vcm1hbCcsIDApXG5cdFx0XHRcdFx0XHRcdFx0fSwgdGhpcylcblxuXHRcdFx0XHRcdFx0XHRcdHBsYXlBdWRpb0J5VXJsKHRoaXMucmlnaHRBdWRpbywgKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZSgpXG5cdFx0XHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0b25Eb25lOiB7XG5cdFx0XHRcdFx0XHRcdHRhcmdldDogJyNRdWVzdGlvbnNBcnJheS5uZXh0Jyxcblx0XHRcdFx0XHRcdFx0YWN0aW9uczogcmFpc2UoJ0NIRUNLJylcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRvbkVycm9yOiB7XG5cdFx0XHRcdFx0XHRcdHRhcmdldDogJyNRdWVzdGlvbnNBcnJheS5uZXh0Jyxcblx0XHRcdFx0XHRcdFx0YWN0aW9uczogcmFpc2UoJ0NIRUNLJylcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0sXG5cdFx0XHRcdHdyb25nOntcblx0XHRcdFx0XHRpbnZva2U6IHtcblx0XHRcdFx0XHRcdHNyYzogKGNvbnRleHQsIGV2ZW50KSA9PiB7XG5cdFx0XHRcdFx0XHRcdHRoaXMuX2xhc3RGaW5nZXJQb3NpdGlvbi5wb3MgPSBudWxsO1xuXHRcdFx0XHRcdFx0XHR0aGlzLl9sYXN0RmluZ2VyUG9zaXRpb24uZGlydHkgPSBmYWxzZTtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnYW5zd2VyIHdyb25nJywgY29udGV4dC5xdWVzdGlvbkluZGV4LCBjb250ZXh0LnF1ZXN0aW9uUGxheVRpbWVzICwgY29udGV4dC5tYXhRdWVzdGlvblRyeVRpbWVzKTtcblx0XHRcdFx0XHRcdFx0XHRjb25zdCBkZExvZ29DYXQgPSB0aGlzLmxvZ29DYXQuZ2V0Q29tcG9uZW50KGRyYWdvbkJvbmVzLkFybWF0dXJlRGlzcGxheSlcblx0XHRcdFx0XHRcdFx0XHRkZExvZ29DYXQucGxheUFuaW1hdGlvbignd3JvbmcnLCAxKVxuXHRcdFx0XHRcdFx0XHRcdGRkTG9nb0NhdC5vbmNlKGRyYWdvbkJvbmVzLkV2ZW50T2JqZWN0LkNPTVBMRVRFLCBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMubG9nb0NhdC5nZXRDb21wb25lbnQoZHJhZ29uQm9uZXMuQXJtYXR1cmVEaXNwbGF5KS5wbGF5QW5pbWF0aW9uKCdub3JtYWwnLCAwKVxuXHRcdFx0XHRcdFx0XHRcdH0sIHRoaXMpO1xuXHRcdFx0XHRcdFx0XHRcdGxldCB3cm9uZ0VmZmVjdCA9IHRoaXMud3JvbmdBdWRpbztcblx0XHRcdFx0XHRcdFx0XHQvLyDnrKzkuIDlkoznrKzkuozpopjnmoTmj5DnpLrpn7Ncblx0XHRcdFx0XHRcdFx0XHRpZiAoWzAsIDFdLmluY2x1ZGVzKGNvbnRleHQucXVlc3Rpb25JbmRleCkpIHtcblx0XHRcdFx0XHRcdFx0XHRcdHdyb25nRWZmZWN0ID0gdGhpcy5kYXRhW2B3cm9uZ19hdWRpbyR7Y29udGV4dC5xdWVzdGlvblBsYXlUaW1lc31gXVxuXHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHQvLyDpnZ7nrKzkuIDlkoznrKzkuozpopjvvIzlubbkuJTlgZrnrKzkuozpgY3nmoTmj5DnpLrpn7Ncblx0XHRcdFx0XHRcdFx0XHRcdGlmIChjb250ZXh0LnF1ZXN0aW9uUGxheVRpbWVzID09IDIpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0d3JvbmdFZmZlY3QgPSB0aGlzLmRhdGFbYHdyb25nX2F1ZGlvJHtjb250ZXh0LnF1ZXN0aW9uUGxheVRpbWVzfWBdXG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0fVxuXG5cblx0XHRcdFx0XHRcdFx0XHRpZiAoY29udGV4dC5xdWVzdGlvblBsYXlUaW1lcyA+PSBjb250ZXh0Lm1heFF1ZXN0aW9uVHJ5VGltZXMpIHtcblx0XHRcdFx0XHRcdFx0XHRcdGNvbnN0IGFuID0gY29udGV4dC5xdWVzdGlvbnNbY29udGV4dC5xdWVzdGlvbkluZGV4XS5ub2RlO1xuXHRcdFx0XHRcdFx0XHRcdFx0YW4uYWN0aXZlID0gdHJ1ZTtcblxuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKGFuLmlzU3BpbmUpIHtcblxuXHRcdFx0XHRcdFx0XHRcdFx0XHRjb25zdCBza2VsZXRvbiA9IGFuLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbik7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHNrZWxldG9uLnNldFRvU2V0dXBQb3NlKCk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHNrZWxldG9uLnNldEFuaW1hdGlvbigwLCAnbm9ybWFsJywgdHJ1ZSk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdH0sIDEpO1xuXHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGNvbnN0IGRyYWdvbkRpc3BsYXkgPSBhbi5nZXRDb21wb25lbnQoZHJhZ29uQm9uZXMuQXJtYXR1cmVEaXNwbGF5KTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0ZHJhZ29uRGlzcGxheS5wbGF5QW5pbWF0aW9uKCdub3JtYWwnLCAwKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ3Nob3cgYW5pbWF0aW9uJywgYW4uYWN0aXZlKTtcblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0cGxheUF1ZGlvQnlVcmwod3JvbmdFZmZlY3QsICgpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcdGlmIChjb250ZXh0LnF1ZXN0aW9uUGxheVRpbWVzID49IGNvbnRleHQubWF4UXVlc3Rpb25UcnlUaW1lcykge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBjb25zdCBhbiA9IGNvbnRleHQucXVlc3Rpb25zW2NvbnRleHQucXVlc3Rpb25JbmRleF0ubm9kZTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gYW4uYWN0aXZlID0gdHJ1ZTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gY29uc3QgZHJhZ29uRGlzcGxheSA9IGFuLmdldENvbXBvbmVudChkcmFnb25Cb25lcy5Bcm1hdHVyZURpc3BsYXkpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBkcmFnb25EaXNwbGF5LnBsYXlBbmltYXRpb24oJ25vcm1hbCcsIDApO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZygnc2hvdyBhbmltYXRpb24nLCBhbi5hY3RpdmUpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRyZWplY3QoKVxuXHRcdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZSgpXG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0b25Eb25lOiB7XG5cdFx0XHRcdFx0XHRcdHRhcmdldDogJ2hpbnQnLFxuXHRcdFx0XHRcdFx0XHQvLyBhY3Rpb25zOiByYWlzZSgnQ0hFQ0snKVxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdG9uRXJyb3I6IHtcblx0XHRcdFx0XHRcdFx0dGFyZ2V0OiAnI1F1ZXN0aW9uc0FycmF5Lm5leHQnLFxuXHRcdFx0XHRcdFx0XHRhY3Rpb25zOiByYWlzZSgnQ0hFQ0snKVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSxcblx0XHRcdH1cblx0XHR9XG5cdFx0Y29uc3QgUXVlc3Rpb25zQXJyYXlTdGF0dXMgPSB7XG5cdFx0XHRpZDogJ1F1ZXN0aW9uc0FycmF5Jyxcblx0XHRcdGluaXRpYWw6ICdwbGF5Jyxcblx0XHRcdHN0YXRlczoge1xuXHRcdFx0XHRwbGF5OiB7XG5cdFx0XHRcdFx0Li4uUXVlc3Rpb25TdGF0ZVxuXHRcdFx0XHR9LFxuXHRcdFx0XHRuZXh0OiB7XG5cdFx0XHRcdFx0b246IHtcblx0XHRcdFx0XHRcdENIRUNLOiBbXG5cdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHR0YXJnZXQ6ICcjZ2FtZS5lbmQnLFxuXHRcdFx0XHRcdFx0XHRcdGNvbmQ6IChjdHgsIGV2dCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0Y3R4LnF1ZXN0aW9uSW5kZXggKz0gMTtcblx0XHRcdFx0XHRcdFx0XHRcdGN0eC5xdWVzdGlvblBsYXlUaW1lcyA9IDBcblx0XHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCcjZ2FtZS5lbmQnLCAgY3R4LnF1ZXN0aW9uSW5kZXggPj0gY3R4LnF1ZXN0aW9uc0NvdW50IClcblx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiBjdHgucXVlc3Rpb25JbmRleCA+PSBjdHgucXVlc3Rpb25zQ291bnRcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdHt0YXJnZXQ6ICdwbGF5J31cblx0XHRcdFx0XHRcdF1cblx0XHRcdFx0XHRcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRcblx0XHRjb25zdCBzdGF0ZSA9IHtcblx0XHRcdGlkOiAnZ2FtZScsXG5cdFx0XHRpbml0aWFsOiAnYmVnaW4nLFxuXHRcdFx0Y29udGV4dDoge1xuXHRcdFx0XHRxdWVzdGlvbkluZGV4OiAwLFxuXHRcdFx0XHRxdWVzdGlvblBsYXlUaW1lczogMCxcblx0XHRcdFx0bWF4UXVlc3Rpb25UcnlUaW1lczogMixcblx0XHRcdFx0cXVlc3Rpb25zQ291bnQ6IHRoaXMuX2ZpZ3VyZVBvaW50UmVjdEFycmF5Lmxlbmd0aCxcblx0XHRcdFx0cXVlc3Rpb25zOiB0aGlzLl9maWd1cmVQb2ludFJlY3RBcnJheSxcblx0XHRcdH0sXG5cdFx0XHRzdGF0ZXM6IHtcblx0XHRcdFx0YmVnaW46IHtcblx0XHRcdFx0XHRpbnZva2U6IHtcblx0XHRcdFx0XHRcdHNyYzogKGN0eCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnZ2FtZSBiZWdpbiAxJyk7XG5cdFx0XHRcdFx0XHRcdGlmKHdpbmRvdy5jb3Vyc2V3YXJlICYmIHdpbmRvdy5jb3Vyc2V3YXJlLm9wZW5Pc21vRmluZ2VyUmVhZCkge1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMuaXNPcGVuZWRPc21vRmluZ2VyUmVhZCA9IHRydWU7XG5cdFx0XHRcdFx0XHRcdFx0d2luZG93LmNvdXJzZXdhcmUub3Blbk9zbW9GaW5nZXJSZWFkKHtcblx0XHRcdFx0XHRcdFx0XHRcdFwicGFnZV9pZFwiOiAyNyxcblx0XHRcdFx0XHRcdFx0XHRcdFwiYm9va19pZFwiOiBcIm9wdzFcIlxuXHRcdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0dmFyIGRyYWdvbkRpc3BsYXkgPSB0aGlzLmxvZ29DYXQuZ2V0Q29tcG9uZW50KGRyYWdvbkJvbmVzLkFybWF0dXJlRGlzcGxheSk7XG5cdFx0XHRcdFx0XHRcdGNvbnN0IHN0YXRlID0gZHJhZ29uRGlzcGxheS5wbGF5QW5pbWF0aW9uKCdiZWdpbicsIDApO1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUscmVqZWN0KSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0cGxheUF1ZGlvQnlVcmwodGhpcy5kYXRhLmJlZ2luX2F1ZGlvLCAoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnZ2FtZSBiZWdpbiBhdWRpbyBmaW5pc2gnKTtcblx0XHRcdFx0XHRcdFx0XHRcdHJlc29sdmUoKVxuXHRcdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdG9uRG9uZTogICdndWlkZScsXG5cdFx0XHRcdFx0XHRvbkVycm9yOiAnZ3VpZGUnXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LFxuXHRcdFx0XHRcblx0XHRcdFx0Z3VpZGU6e1xuXHRcdFx0XHRcdGludm9rZToge1xuXHRcdFx0XHRcdFx0c3JjOiAoY3R4KSA9PiB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSxyZWplY3QpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRwbGF5QXVkaW9CeVVybCh0aGlzLmRhdGEuZ3VpZGVfYXVkaW8sICgpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdnYW1lIGd1aWRlIGF1ZGlvIGZpbmlzaCcpO1xuXHRcdFx0XHRcdFx0XHRcdFx0cmVqZWN0KClcblx0XHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRvbkRvbmU6ICAncGxheWluZycsXG5cdFx0XHRcdFx0XHRvbkVycm9yOiAncGxheWluZydcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFxuXHRcdFx0XHR9LFxuXHRcdFx0XHRwbGF5aW5nOiB7XG5cdFx0XHRcdFx0ZW50cnk6IChjdHgpID0+IHtcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdlbnRyeSBwbGF5IHN0YWdlJyk7XG5cdFx0XHRcdFx0XHR2YXIgZHJhZ29uRGlzcGxheSA9IHRoaXMubG9nb0NhdC5nZXRDb21wb25lbnQoZHJhZ29uQm9uZXMuQXJtYXR1cmVEaXNwbGF5KTtcblx0XHRcdFx0XHRcdGNvbnN0IHN0YXRlID0gZHJhZ29uRGlzcGxheS5wbGF5QW5pbWF0aW9uKCdub3JtYWwnLCAwKTtcblx0XHRcdFx0XHRcdGNjLmFzc2V0TWFuYWdlci5sb2FkUmVtb3RlKHRoaXMuZGF0YS5wbGF5aW5nX2F1ZGlvLCAoZXJyLCBhdWRpb0NsaXApID0+IHtcblx0XHRcdFx0XHRcdFx0Y2MuYXVkaW9FbmdpbmUucGxheU11c2ljKGF1ZGlvQ2xpcCwgdHJ1ZSwgMC44KTtcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0Y3R4LnF1ZXN0aW9ucy5mb3JFYWNoKChibG9jaykgPT4ge1xuXHRcdFx0XHRcdFx0XHRibG9jay5ub2RlLmFjdGl2ZSA9IGZhbHNlO1xuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRleGl0OiAoKSA9PiB7XG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnZXhpdCBwbGF5IHN0YWdlJyk7XG5cdFx0XHRcdFx0XHRjYy5hdWRpb0VuZ2luZS5zdG9wTXVzaWMoKTtcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdG9uOiB7XG5cdFx0XHRcdFx0XHRORVhUOiAnZW5kJ1xuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0Ly8gLi4uUXVlc3Rpb25zU3RhdGVzXG5cdFx0XHRcdFx0Li4uUXVlc3Rpb25zQXJyYXlTdGF0dXNcblx0XHRcdFx0fSxcblx0XHRcdFx0ZW5kOiB7XG5cdFx0XHRcdFx0XHRlbnRyeTogKGN0eCwgZXZlbnQpID0+IHtcblx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ2dhbWUgZW5kJyk7XG5cdFx0XHRcdFx0XHRcdHZhciBkcmFnb25EaXNwbGF5ID0gdGhpcy5sb2dvQ2F0LmdldENvbXBvbmVudChkcmFnb25Cb25lcy5Bcm1hdHVyZURpc3BsYXkpO1xuXHRcdFx0XHRcdFx0XHRjb25zdCBzdGF0ZSA9IGRyYWdvbkRpc3BsYXkucGxheUFuaW1hdGlvbignZmluaXNoJywgMCk7XG5cdFx0XHRcdFx0XHRcdGlmKHdpbmRvdy5jb3Vyc2V3YXJlICYmIHdpbmRvdy5jb3Vyc2V3YXJlLmNsb3NlT3Ntb0ZpbmdlclJlYWQpIHtcblx0XHRcdFx0XHRcdFx0XHR0aGlzLmlzT3BlbmVkT3Ntb0ZpbmdlclJlYWQgPSBmYWxzZTtcblx0XHRcdFx0XHRcdFx0XHR3aW5kb3cuY291cnNld2FyZS5jbG9zZU9zbW9GaW5nZXJSZWFkKClcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRwbGF5QXVkaW9CeVVybCh0aGlzLmRhdGEuZW5kX2F1ZGlvLCAoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ2dhbWUgZmluaXNoJyk7XG5cdFx0XHRcdFx0XHRcdFx0b25Ib21ld29ya0ZpbmlzaCgpO1xuXHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHQvLyByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUscmVqZWN0KSA9PiB7XG5cdFx0XHRcdFx0XHRcdC8vIFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdC8vIFx0XHRjb25zb2xlLmxvZygnaGludCBmaW5pc2gnKTtcblx0XHRcdFx0XHRcdFx0Ly8gXHRcdHJlc29sdmUoKVxuXHRcdFx0XHRcdFx0XHQvLyBcdH0sIDIwMDApXG5cdFx0XHRcdFx0XHRcdC8vIH0pXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XG5cdFx0XHRcdH0sXG5cdFx0XHR9XG5cdFx0fTtcblx0XHRjb25zdCBhZnRlciA9IHt9O1xuXHRcdGZvcihsZXQgaSA9IDAgO2kgIDwgdGhpcy5faGludHNOb2RlTGlzdC5sZW5ndGg7IGkrKykge1xuXHRcdFx0Y29uc3QgdCA9IHRoaXMuX2hpbnRzTm9kZUxpc3RbaV0ubm9kZTtcblx0XHRcdGNvbnN0IGsgPSB0aGlzLl9oaW50c05vZGVMaXN0W2ldLmFmdGVyO1xuXHRcdFx0YWZ0ZXJba109IHtcblx0XHRcdFx0YWN0aW9uczogKCkgPT4ge1xuXG5cdFx0XHRcdFx0aWYgKHQuaXNTcGluZSkge1xuXG5cdFx0XHRcdFx0XHRjb25zdCBza2VsZXRvbiA9IHQuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKTtcblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0c2tlbGV0b24uc2V0VG9TZXR1cFBvc2UoKTtcblx0XHRcdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRza2VsZXRvbi5zZXRBbmltYXRpb24oMCwgJ2VubGFyZ2UnLCBmYWxzZSk7XG5cdFx0XHRcdFx0XHR9LCAxKTtcblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0Ly8gc2tlbGV0b24uYW5pbWF0aW9uID0gc2tlbGV0b24uYW5pbWF0aW9uTmFtZXNbMF07XG5cblx0XHRcdFx0XHR9IGVsc2Uge1xuXG5cdFx0XHRcdFx0XHRjb25zdCBkcmFnb25EaXNwbGF5ID0gdC5nZXRDb21wb25lbnQoZHJhZ29uQm9uZXMuQXJtYXR1cmVEaXNwbGF5KTtcblx0XHRcdFx0XHRcdGRyYWdvbkRpc3BsYXkucGxheUFuaW1hdGlvbignZW5sYXJnZScsIDEpO1xuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coZHJhZ29uRGlzcGxheS5fYXJtYXR1cmVLZXksICdlbmxhcmdlJylcblx0XHRcdFx0XHRcdGRyYWdvbkRpc3BsYXkuYWRkRXZlbnRMaXN0ZW5lcihkcmFnb25Cb25lcy5FdmVudE9iamVjdC5DT01QTEVURSwgKGV2ZW50KSA9PiB7XG5cdFx0XHRcdFx0XHRcdC8vIFRPRE8g6L+Z6YeM5YaZ6Kem5Y+R5LqL5Lu2XG5cdFx0XHRcdFx0XHRcdC8vIGV2ZW50Lm5hbWXkuLrkuovku7blkI3np7Bcblx0XHRcdFx0XHRcdFx0Ly8gZXZlbnQuYXJtYXR1cmUuYW5pbWF0aW9uLnBsYXkoJ25vcm1hbCcsIDApO1xuXHRcdFx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhldmVudC5hbmltYXRpb25TdGF0ZS5uYW1lLCBkcmFnb25EaXNwbGF5Ll9hcm1hdHVyZUtleSwgJ2VuZCcpXG5cdFx0XHRcdFx0XHR9LCB0aGlzKTtcblx0XHRcdFx0XHR9XG5cblxuXG5cdFx0XHRcdFx0Ly8gY29uc3QgZHJhZ29uRGlzcGxheSA9IHQuZ2V0Q29tcG9uZW50KGRyYWdvbkJvbmVzLkFybWF0dXJlRGlzcGxheSk7XG5cdFx0XHRcdFx0Ly8gZHJhZ29uRGlzcGxheS5wbGF5QW5pbWF0aW9uKCdlbmxhcmdlJywgMSk7XG5cdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coZHJhZ29uRGlzcGxheS5fYXJtYXR1cmVLZXksICdlbmxhcmdlJylcblx0XHRcdFx0XHQvLyBkcmFnb25EaXNwbGF5LmFkZEV2ZW50TGlzdGVuZXIoZHJhZ29uQm9uZXMuRXZlbnRPYmplY3QuQ09NUExFVEUsIChldmVudCkgPT4ge1xuXHRcdFx0XHRcdC8vIFx0Ly9UT0RPIOi/memHjOWGmeinpuWPkeS6i+S7tlxuXHRcdFx0XHRcdC8vIFx0Ly9ldmVudC5uYW1l5Li65LqL5Lu25ZCN56ewXG5cdFx0XHRcdFx0Ly8gXHRldmVudC5hcm1hdHVyZS5hbmltYXRpb24ucGxheSgnbm9ybWFsJywgMCk7XG5cdFx0XHRcdFx0Ly8gXHRjb25zb2xlLmxvZyhldmVudC5hbmltYXRpb25TdGF0ZS5uYW1lLCBkcmFnb25EaXNwbGF5Ll9hcm1hdHVyZUtleSwgJ2VuZCcpXG5cdFx0XHRcdFx0Ly8gfSwgdGhpcyk7XG5cdFx0XHRcdH0gXG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmICh0aGlzLmRhdGEuYmVnaW5fc2VwX3RpbWUpIHtcblx0XHRcdGNvbnN0IHQgPSArdGhpcy5kYXRhLmJlZ2luX3NlcF90aW1lICogMTAwMDtcblx0XHRcdGFmdGVyW3RdID0ge1xuXHRcdFx0XHRhY3Rpb25zOiAoKSA9PiB7XG5cdFx0XHRcdFx0Y29uc29sZS5sb2coJ2dhbWUgYmVnaW4gMicpO1xuXG5cdFx0XHRcdFx0Zm9yKGxldCBpID0gMCA7aSAgPCB0aGlzLl9hbGxBbmltYXRpb25Ob2Rlcy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdFx0Y29uc3QgdCA9IHRoaXMuX2FsbEFuaW1hdGlvbk5vZGVzW2ldO1xuXHRcdFx0XHRcdFx0aWYgKHQuaXNTcGluZSkge1xuXG5cdFx0XHRcdFx0XHRcdGNvbnN0IHNrZWxldG9uID0gdC5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pO1xuXHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnc2tlbGV0b246ICcsIHNrZWxldG9uKTtcblx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdHNrZWxldG9uLnNldFRvU2V0dXBQb3NlKCk7XG5cdFx0XHRcdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdHNrZWxldG9uLnNldEFuaW1hdGlvbigwLCAnbm9ybWFsJywgdHJ1ZSk7XG5cdFx0XHRcdFx0XHRcdH0sIDEpO1xuXHRcdFx0XHRcdFx0XHRcblxuXHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnc2tlbGV0b24gMjI6ICcsIHNrZWxldG9uKTtcblxuXHRcdFx0XHRcdFx0XHQvLyBza2VsZXRvbi5hbmltYXRpb24gPSBza2VsZXRvbi5hbmltYXRpb25OYW1lc1swXTtcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0XHRcdFx0Y29uc3QgZHJhZ29uRGlzcGxheSA9IHQuZ2V0Q29tcG9uZW50KGRyYWdvbkJvbmVzLkFybWF0dXJlRGlzcGxheSk7XG5cdFx0XHRcdFx0XHRcdGRyYWdvbkRpc3BsYXkucGxheUFuaW1hdGlvbignbm9ybWFsJywgMCk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdHN0YXRlLnN0YXRlcy5iZWdpbi5hZnRlciA9IGFmdGVyO1xuXG5cblxuXHRcdGNvbnN0IGdhbWVNYWNoaW5lID0gY3JlYXRlTWFjaGluZShzdGF0ZSk7XG5cdFx0d2luZG93LmdhbWVNYWNoaW5lID0gZ2FtZU1hY2hpbmU7XG5cdFx0dGhpcy5nYW1lTWFjaGluZVNlcnZpY2UgPSBpbnRlcnByZXQoZ2FtZU1hY2hpbmUpLm9uVHJhbnNpdGlvbigoc3RhdGUpID0+IHtcblx0XHQvLyBjb25zb2xlLmxvZygxLCBzdGF0ZS52YWx1ZSwgc3RhdGUuY29udGV4dCk7XG5cdFx0fSk7XG5cdFx0dGhpcy5nYW1lTWFjaGluZVNlcnZpY2Uuc3RhcnQoKTtcblx0XHRpZiAod2luZG93LmdhbWVNYWNoaW5lU2VydmljZSkge1xuXHRcdFx0d2luZG93LmdhbWVNYWNoaW5lU2VydmljZSA9IGdhbWVNYWNoaW5lU2VydmljZTtcblx0XHR9XG5cblxuXHR9LFxuXG5cdFxuXG5cblxuXHQvLyDnlJ/lkb3lkajmnJ8gc3RhcnRcblx0c3RhcnQoKSB7XG5cdFx0bGV0IGdldERhdGEgPSB0aGlzLmdldERhdGEuYmluZCh0aGlzKTtcblx0XHRpZiAod2luZG93ICYmIHdpbmRvdy5jb3Vyc2V3YXJlKSB7XG5cdFx0XHRnZXREYXRhID0gd2luZG93LmNvdXJzZXdhcmUuZ2V0RGF0YTtcblx0XHR9XG5cblx0XHRnZXREYXRhKChkYXRhKSA9PiB7XG5cdFx0XHQvLyBjb25zb2xlLmxvZygnZGF0YTonLCBkYXRhKTtcblx0XHRcdHRoaXMuZGF0YSA9IGRhdGEgfHwgdGhpcy5nZXREZWZhdWx0RGF0YSgpO1xuXHRcdFx0dGhpcy5kYXRhID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmRhdGEpKVxuXHRcdFx0XG5cdFx0XHR0aGlzLnByZWxvYWRJdGVtKClcblx0XHR9KTtcblx0XHR3aW5kb3cuYWlyID0gd2luZG93LmFpciB8fCB7fVxuXHRcdGlmICh3aW5kb3cuYWlyKSB7XG5cdFx0XHR3aW5kb3cuYWlyLm9zbW9GaW5nZXJSZWFkQ2FsbGJhY2sgPSAocmVzdWx0KSA9PiB7XG5cdFx0XHRcdGlmICghdGhpcy5nYW1lTWFjaGluZVNlcnZpY2UpIHtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblx0XHRcdFx0Ly8gY29uc3Qgc3QgPSB0aGlzLmdhbWVNYWNoaW5lU2VydmljZS5zdGF0ZS52YWx1ZS5jb25zdHJ1Y3Rvci5uYW1lID09ICdPYmplY3QnIFxuXHRcdFx0XHQvLyAmJiB0aGlzLmdhbWVNYWNoaW5lU2VydmljZS5zdGF0ZS52YWx1ZVsncGxheWluZyddXG5cdFx0XHRcdC8vICYmIHRoaXMuZ2FtZU1hY2hpbmVTZXJ2aWNlLnN0YXRlLnZhbHVlWydwbGF5aW5nJ10uY29uc3RydWN0b3IubmFtZSA9PSAnT2JqZWN0J1xuXHRcdFx0XHQvLyAmJiB0aGlzLmdhbWVNYWNoaW5lU2VydmljZS5zdGF0ZS52YWx1ZVsncGxheWluZyddWydwbGF5J11cblx0XHRcdFx0Ly8gJiYgdGhpcy5nYW1lTWFjaGluZVNlcnZpY2Uuc3RhdGUudmFsdWVbJ3BsYXlpbmcnXVsncGxheSddID09ICdhbnN3ZXInXG5cdFx0XHRcdC8vIGlmIChzdCkge1xuXHRcdFx0XHQvLyB9XG5cdFx0XHRcdGNvbnN0IHJlc3VsdE9iaiA9IEpTT04ucGFyc2UocmVzdWx0KTtcblx0XHRcdFx0Y29uc29sZS5sb2coJ1tHZW5pc2UgSlNdICcrIEpTT04uc3RyaW5naWZ5KHJlc3VsdE9iai5maW5nZXJfcG9zX2luX3BhZ2UpKVxuXHRcdFx0XHRjb25zdCBwID0gcmVzdWx0T2JqLmZpbmdlcl9wb3NfaW5fcGFnZTtcblx0XHRcdFx0aWYgKHAueCA9PSAtMSB8fCBwLnkgPT0gLTEpIHtcblx0XHRcdFx0XHR0aGlzLl9sYXN0RmluZ2VyUG9zaXRpb24ucG9zID0gbnVsbDtcblx0XHRcdFx0XHR0aGlzLl9sYXN0RmluZ2VyUG9zaXRpb24uZGlydHkgPSBmYWxzZTtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblx0XHRcdFx0dGhpcy5fbGFzdEZpbmdlclBvc2l0aW9uID0ge1xuXHRcdFx0XHRcdHBvczp7XG5cdFx0XHRcdFx0XHR4OiBwLngsXG5cdFx0XHRcdFx0XHR5OiBwLnlcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdGRpcnR5OiB0cnVlXG5cdFx0XHRcdH1cblx0XHRcdFx0dGhpcy5kZWJ1Z1BvaW50ZXIocC54LCBwLnkpXG5cdFx0XHR9XG5cdFx0fVxuXHRcdHRoaXMuaXNEZWJ1ZyA9IGZhbHNlO1xuXHRcdFxuXHR9LFxuXHRjaGVja0luUmVnaW9uKHIpIHtcblx0XHRjb25zb2xlLmxvZygncn5+fjogJywgcik7XG5cdFx0aWYgKCF0aGlzLl9sYXN0RmluZ2VyUG9zaXRpb24gJiYgIXRoaXMuX2xhc3RGaW5nZXJQb3NpdGlvbi5wb3MpIHtcblx0XHRcdHJldHVybiBudWxsO1xuXHRcdH1cblx0XHRjb25zdCBwID0gdGhpcy5fbGFzdEZpbmdlclBvc2l0aW9uID8gdGhpcy5fbGFzdEZpbmdlclBvc2l0aW9uLnBvcyB8fCB7eDowLCB5OjB9IDoge3g6MCwgeTowfTtcblx0XHRjb25zdCB3ID0gcC54ID4gci54ICYmIHAueCA8IChyLnggKyByLndpZHRoKTtcblx0XHRjb25zdCBoID0gcC55ID4gci55ICYmIHAueSA8IChyLnkgKyByLmhlaWdodCk7XG5cdFx0cmV0dXJuIHcgJiYgaDtcblxuXHR9LFxuXG5cdGdldERhdGEoZnVuYykge1xuXHRcdGlmICh3aW5kb3cgJiYgd2luZG93LmNvdXJzZXdhcmUpIHtcblx0XHRcdHdpbmRvdy5jb3Vyc2V3YXJlLmdldERhdGEoZnVuYywgJ3NjZW5lJyk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Y29uc3QgbWlkZGxlTGF5ZXIgPSBjYy5maW5kKCdtaWRkbGVMYXllcicpO1xuXHRcdGlmIChtaWRkbGVMYXllcikge1xuXHRcdFx0Y29uc3QgbWlkZGxlTGF5ZXJDb21wb25lbnQgPSBtaWRkbGVMYXllci5nZXRDb21wb25lbnQoJ21pZGRsZUxheWVyJyk7XG5cdFx0XHRtaWRkbGVMYXllckNvbXBvbmVudC5nZXREYXRhKGZ1bmMpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGZ1bmModGhpcy5nZXREZWZhdWx0RGF0YSgpKTtcblx0fSxcblxuXHRnZXREZWZhdWx0RGF0YSgpIHtcblx0XHRyZXR1cm4gIHtcImJlZ2luX2F1ZGlvXCI6XCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzNkMzA3YTAyNjYzZTFjZDY2N2I3Yzk1MTM0MGVjOThiLm1wM1wiLFwiYmVnaW5fc2VwX3RpbWVcIjoxLFwiZ3VpZGVfYXVkaW9cIjpcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vM2QzMDdhMDI2NjNlMWNkNjY3YjdjOTUxMzQwZWM5OGIubXAzXCIsXCJwbGF5aW5nX2F1ZGlvXCI6XCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzNkMzA3YTAyNjYzZTFjZDY2N2I3Yzk1MTM0MGVjOThiLm1wM1wiLFwicmlnaHRfYXVkaW9cIjpcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vM2QzMDdhMDI2NjNlMWNkNjY3YjdjOTUxMzQwZWM5OGIubXAzXCIsXCJ3cm9uZ19hdWRpb1wiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8zZDMwN2EwMjY2M2UxY2Q2NjdiN2M5NTEzNDBlYzk4Yi5tcDNcIixcIndyb25nX2F1ZGlvMVwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8zZDMwN2EwMjY2M2UxY2Q2NjdiN2M5NTEzNDBlYzk4Yi5tcDNcIixcIndyb25nX2F1ZGlvMlwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8zZDMwN2EwMjY2M2UxY2Q2NjdiN2M5NTEzNDBlYzk4Yi5tcDNcIixcImVuZF9hdWRpb1wiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8zZDMwN2EwMjY2M2UxY2Q2NjdiN2M5NTEzNDBlYzk4Yi5tcDNcIixcImJnSXRlbVwiOntcInVybFwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS84NGVjNmVkYzIwYmNlYWFhOWRiZTgyNDA5MmI2ODYwZC5wbmdcIixcInJlY3RcIjp7XCJ4XCI6NzM2Ljk1LFwieVwiOjAsXCJ3aWR0aFwiOjU5OS4wOSxcImhlaWdodFwiOjc3NX19LFwiaG90Wm9uZUl0ZW1BcnJcIjpbe1wiaWRcIjpcIjE2NTkzMzM2NDU1NzNcIixcImluZGV4XCI6MCxcImF1ZGlvX3VybFwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS81YTFhMjY3MDg0NWJmZTc2NjYyZTg2ZDlhM2E2OWY4MS5tcDNcIixcIml0ZW1UeXBlXCI6XCJyZWN0XCIsXCJmb250U2NhbGVcIjoxLjYxOTUzMTI1LFwiaW1nU2NhbGVcIjoxLFwiaW1nU2l6ZVdcIjowLFwiaW1nU2l6ZUhcIjowLFwibWFwU2NhbGVcIjoxLjYxOTUzMTI1LFwiZHJhZ0RvdFwiOntcInhcIjoxMDM2LjUsXCJ5XCI6Mzg3LjV9LFwiZ0lkeFwiOlwiMVwiLFwibGFiZWxUZXh0XCI6XCIxXCIsXCJwb3NYXCI6ODg3LjUsXCJwb3NZXCI6MTY1LjUsXCJza2VKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8xMzNhMWY2MDcxOWVkMjYyNDdlMzVkYzAyMmQ4Mjg2Mi5qc29uXCIsXCJuYW1lXCI6XCJzcGluZWJveS1wcm8uanNvblwifSxcInRleEpzb25EYXRhXCI6e1widXJsXCI6XCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2UwOTQ1YjgyNjVlYTNiODA1M2FmYjgxNGM2Yjg0OWQzLmF0bGFzXCIsXCJuYW1lXCI6XCJzcGluZWJveS1wcm8uYXRsYXNcIn0sXCJ0ZXhQbmdEYXRhXCI6e1widXJsXCI6XCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzUxNzU1M2Y1MDIyNDkxNTE0OGY5ZWZjNWI3NTU2Nzk4LnBuZ1wiLFwibmFtZVwiOlwic3BpbmVib3ktcHJvLnBuZ1wifSxcImFuaW1UeXBlXCI6XCJzcGluZVwiLFwicmVjdFwiOntcInhcIjo0OC4wNSxcInlcIjo2NS41LFwid2lkdGhcIjoyMDUsXCJoZWlnaHRcIjoyMDB9fSx7XCJpZFwiOlwiMTY1OTMzNDA5ODkzMFwiLFwiaW5kZXhcIjoxLFwiYXVkaW9fdXJsXCI6XCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzE2ZWIwNmE2YmViOWU0ZmE3N2M5YjVkMmQ2NDNhYjI5Lm1wM1wiLFwiaXRlbVR5cGVcIjpcInJlY3RcIixcImZvbnRTY2FsZVwiOjEuNjE5NTMxMjUsXCJpbWdTY2FsZVwiOjEsXCJpbWdTaXplV1wiOjAsXCJpbWdTaXplSFwiOjAsXCJtYXBTY2FsZVwiOjEuNjE5NTMxMjUsXCJkcmFnRG90XCI6e1wieFwiOjEwMzYuNSxcInlcIjozODcuNX0sXCJnSWR4XCI6XCIwXCIsXCJsYWJlbFRleHRcIjpcIjFcIixcInBvc1hcIjoxMjEyLjUsXCJwb3NZXCI6NjQzLjUsXCJza2VKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS82NzlmZWQyNmRhYTQ2NDgxOWQ1NTNkZTYzMzFiMzU1Mi5qc29uXCIsXCJuYW1lXCI6XCJhbGllbi1wcm8uanNvblwifSxcInRleEpzb25EYXRhXCI6e1widXJsXCI6XCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzY1ZDgyMTRjNmI1YzVkMDQ5NmUxN2FkYjA0MDgyNzZhLmF0bGFzXCIsXCJuYW1lXCI6XCJhbGllbi1wcm8uYXRsYXNcIn0sXCJ0ZXhQbmdEYXRhXCI6e1widXJsXCI6XCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2EzMTliMzcyODk5MjM5MzI1YjkwYmI0ZWMwN2I0OTcwLnBuZ1wiLFwibmFtZVwiOlwiYWxpZW4tcHJvLnBuZ1wifSxcImFuaW1UeXBlXCI6XCJzcGluZVwiLFwicmVjdFwiOntcInhcIjozNzUuNTYsXCJ5XCI6NTQzLjUsXCJ3aWR0aFwiOjIwMCxcImhlaWdodFwiOjIwMH19XX1cblx0XHQvLyByZXR1cm4gZGVmYXVsdERhdGE7XG5cdH0sXG5cblx0cHJlbG9hZEl0ZW0oKSB7XG5cdFx0dGhpcy5hZGRQcmVsb2FkSW1hZ2UoKTtcblx0XHR0aGlzLmFkZFByZWxvYWRBdWRpbygpO1xuXHRcdHRoaXMuYWRkUHJlbG9hZEFuaW1hKCk7XG5cdFx0dGhpcy5wcmVsb2FkKCk7XG5cdH0sXG5cblxuXHRhZGRQcmVsb2FkSW1hZ2UoKSB7XG5cblx0XHR0aGlzLl9pbWFnZVJlc0xpc3QucHVzaCh7IHVybDogdGhpcy5kYXRhLmJnSXRlbS51cmx9KTtcblxuXHRcdGZvciAoY29uc3QgcSBvZiB0aGlzLmRhdGEuaG90Wm9uZUl0ZW1BcnIpIHtcblx0XHRcdGlmIChxLmdJZHggPT0nMCcpIHtcblx0XHRcdFx0dGhpcy5faW1hZ2VSZXNMaXN0LnB1c2goeyB1cmw6IHEudGV4UG5nRGF0YS51cmx9KTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKHEuZ0lkeCA9PScxJykge1xuXHRcdFx0XHR0aGlzLl9pbWFnZVJlc0xpc3QucHVzaCh7IHVybDogcS50ZXhQbmdEYXRhLnVybCB9KTtcblx0XHRcdH1cblx0XHRcdGlmIChxLmdJZHggPT0nMicpIHtcblx0XHRcdFx0dGhpcy5faW1hZ2VSZXNMaXN0LnB1c2goeyB1cmw6IHEucGljX3VybH0pO1xuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0cHJlcGFyZUF1ZGlvQ2xpcCh1cmwsIGtleSkge1xuXHRcdGlmICh1cmwpIHtcblx0XHRcdGNjLmFzc2V0TWFuYWdlci5sb2FkUmVtb3RlKHVybCwgKGVyciwgYXVkaW9DbGlwKSA9PiB7XG5cdFx0XHRcdGlmIChhdWRpb0NsaXApIHtcblx0XHRcdFx0XHR0aGlzW2tleV0gPSBhdWRpb0NsaXA7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH1cblx0fSxcblx0YWRkUHJlbG9hZEF1ZGlvKCkge1xuXG5cdFx0dGhpcy5fYXVkaW9SZXNMaXN0LnB1c2goeyB1cmw6IHRoaXMuZGF0YS5iZWdpbl9hdWRpbyB9KTtcblx0XHQvLyB0aGlzLnByZXBhcmVBdWRpb0NsaXAodGhpcy5kYXRhLmJlZ2luX2F1ZGlvMSwgJ2JlZ2luX2F1ZGlvMScpXG5cdFx0Ly8gdGhpcy5fYXVkaW9SZXNMaXN0LnB1c2goeyB1cmw6IHRoaXMuZGF0YS5iZWdpbl9hdWRpbzIgfSk7XG5cdFx0Ly8gdGhpcy5wcmVwYXJlQXVkaW9DbGlwKHRoaXMuZGF0YS5iZWdpbl9hdWRpbzIsICdiZWdpbl9hdWRpbzInKVxuXHRcdHRoaXMuX2F1ZGlvUmVzTGlzdC5wdXNoKHsgdXJsOiB0aGlzLmRhdGEuZ3VpZGVfYXVkaW8gfSk7XG5cdFx0dGhpcy5fYXVkaW9SZXNMaXN0LnB1c2goeyB1cmw6IHRoaXMuZGF0YS5wbGF5aW5nX2F1ZGlvIH0pO1xuXHRcdGlmICh0aGlzLmRhdGEud3JvbmdfYXVkaW8pIHtcblx0XHRcdHRoaXMuX2F1ZGlvUmVzTGlzdC5wdXNoKHsgdXJsOiB0aGlzLmRhdGEud3JvbmdfYXVkaW8gfSk7XG5cdFx0XHR0aGlzLndyb25nQXVkaW8gPSB0aGlzLmRhdGEud3JvbmdfYXVkaW9cblx0XHR9XG5cdFx0aWYgKHRoaXMuZGF0YS5yaWdodF9hdWRpbykge1xuXHRcdFx0dGhpcy5fYXVkaW9SZXNMaXN0LnB1c2goeyB1cmw6IHRoaXMuZGF0YS5yaWdodF9hdWRpbyB9KTtcblx0XHRcdHRoaXMucmlnaHRBdWRpbyA9IHRoaXMuZGF0YS5yaWdodF9hdWRpb1xuXHRcdH1cblx0XHR0aGlzLl9hdWRpb1Jlc0xpc3QucHVzaCh7IHVybDogdGhpcy5kYXRhLndyb25nX2F1ZGlvMSB9KTtcblx0XHR0aGlzLl9hdWRpb1Jlc0xpc3QucHVzaCh7IHVybDogdGhpcy5kYXRhLndyb25nX2F1ZGlvMiB9KTtcblx0XHR0aGlzLl9hdWRpb1Jlc0xpc3QucHVzaCh7IHVybDogdGhpcy5kYXRhLmVuZF9hdWRpbyB9KTtcblxuXG5cdFx0Zm9yIChjb25zdCBxIG9mIHRoaXMuZGF0YS5ob3Rab25lSXRlbUFycikge1xuXHRcdFx0aWYgKHEuZ0lkeCA9PScwJykge1xuXHRcdFx0XHR0aGlzLl9hdWRpb1Jlc0xpc3QucHVzaCh7IHVybDogcS5hdWRpb191cmwgfSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHRkZWJ1Z1BvaW50ZXIoKSB7XG5cdFx0Y29uc3QgYm94RGVidWdnZXIgPSBjYy5maW5kKCdDYW52YXMvYm94LWRlYnVnZ2VyJyk7XG5cdFx0aWYgKCF0aGlzLmlzRGVidWcpIHtcblx0XHRcdGJveERlYnVnZ2VyLmFjdGl2ZSA9IGZhbHNlO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRpZiAoIXRoaXMuUE9JTlRFUl9OT0RFKSB7XG5cdFx0XHR0aGlzLlBPSU5URVJfTk9ERSA9IG5ldyBjYy5Ob2RlKCk7XG5cdFx0XHR0aGlzLlBPSU5URVJfTk9ERS5wYXJlbnQgPSBib3hEZWJ1Z2dlcjtcblx0XHRcdHRoaXMuUE9JTlRFUl9OT0RFLm5hbWUgPSAnUE9JTlRFUl9OT0RFJ1xuXHRcdFx0dGhpcy5QT0lOVEVSX05PREUuYWRkQ29tcG9uZW50KGNjLkdyYXBoaWNzKTtcblx0XHR9XG5cdFx0Y29uc3QgZ3JhcCA9IHRoaXMuUE9JTlRFUl9OT0RFLmdldENvbXBvbmVudChjYy5HcmFwaGljcyk7XG5cdFx0Z3JhcC5jbGVhcigpO1xuXHRcdGNvbnN0IGdyb3VuZCA9IGNjLmZpbmQoJ0NhbnZhcy9mcmFtZS1ib3JkZXIvZ3JvdW5kJyk7XG5cdFx0Y29uc3Qge3dpZHRoOiBiYXNlVywgaGVpZ2h0OiBiYXNlSH0gPSBncm91bmQ7XG5cdFx0Y29uc3Qge3g6IHB4LCB5OiBweX0gPSB0aGlzLl9sYXN0RmluZ2VyUG9zaXRpb24ucG9zO1xuXHRcdGxldCB4ID0gYmFzZVcgKiBweCAtIGJhc2VXIC8gMjtcblx0XHRsZXQgeSA9IGJhc2VIIC0gKGJhc2VIICogcHkpIC0gYmFzZUggLyAyIC0gMTY7XG5cdFx0Y29uc3QgcG4gPSBuZXcgY2MuTm9kZSgpO1xuXHRcdFxuXHRcdGdyYXAuZmlsbENvbG9yPWNjLmNvbG9yKDI1NSwgMCwgMCk7XG5cdFx0Z3JhcC5jaXJjbGUoeCwgeSwgMzIpO1xuXHRcdGdyYXAuZmlsbCgpO1xuXHRcdGdyYXAuc3Ryb2tlKCk7XG5cdH0sXG5cdGRlYnVnR3JhcGhpY3MoKSB7XG5cdFx0Y29uc3QgYm94RGVidWdnZXIgPSBjYy5maW5kKCdDYW52YXMvYm94LWRlYnVnZ2VyJyk7XG5cdFx0aWYgKCF0aGlzLmlzRGVidWcpIHtcblx0XHRcdGJveERlYnVnZ2VyLmFjdGl2ZSA9IGZhbHNlO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRib3hEZWJ1Z2dlci5hY3RpdmUgPSB0cnVlO1xuXHRcdGNvbnNvbGUubG9nKCdzaG93IGRlYnVnIGdyYXBoaWNzJyk7XG5cdFx0Y29uc3QgZ3JvdW5kID0gY2MuZmluZCgnQ2FudmFzL2ZyYW1lLWJvcmRlci9ncm91bmQnKTtcblx0XHRjb25zdCBjYW52YXMgPSBjYy5maW5kKCdDYW52YXMnKTtcblx0XHRjb25zdCB7d2lkdGg6IGJhc2VXLCBoZWlnaHQ6IGJhc2VIfSA9IGdyb3VuZDtcblx0XHRjb25zdCB7d2lkdGg6IGJnVywgaGVpZ2h0OiBiZ0h9ID0gdGhpcy5kYXRhLmJnSXRlbS5yZWN0XG5cdFx0Y29uc3Qgc2NhbGVYID0gYmdXIC8gYmFzZVc7XG5cdFx0Y29uc3Qgc2NhbGVZID0gYmdIIC8gYmFzZUg7XG5cdFx0bGV0IGFkZGVkICA9ZmFsc2Vcblx0XHR0aGlzLmRhdGEuaG90Wm9uZUl0ZW1BcnIuZm9yRWFjaChhcmVhID0+IHtcblx0XHRcdFxuXHRcdFx0aWYgKGFkZGVkKSB7XG5cdFx0XHRcdC8vIHJldHVyblxuXHRcdFx0fVxuXHRcdFx0aWYgKGFyZWEuZ0lkeCAhPSAnMCcpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0YWRkZWQgPSB0cnVlO1xuXHRcdFx0Y29uc3QgZG4gPSBuZXcgY2MuTm9kZSgpO1xuXHRcdFx0Y29uc3QgbGJsTm9kZSA9IG5ldyBjYy5Ob2RlKCk7XG5cdFx0XHRsYmxOb2RlLnBhcmVudCA9IGRuXG5cdFx0XHRjb25zdCBsYmwgPSBsYmxOb2RlLmFkZENvbXBvbmVudChjYy5MYWJlbCk7XG5cdFx0XHRsYmxOb2RlLmNvbG9yID0gY2MuY29sb3IoMCwwLDApXG5cdFx0XHRsYmwuc3RyaW5nID0gYXJlYS5za2VKc29uRGF0YS5uYW1lLnN1YnN0cmluZygwLCBhcmVhLnNrZUpzb25EYXRhLm5hbWUubGVuZ3RoIC0gOSlcblx0XHRcdGRuLm5hbWUgPSBsYmwuc3RyaW5nO1xuXHRcdFx0ZG4ucGFyZW50ID0gYm94RGVidWdnZXI7XG5cdFx0XHRkbi53aWR0aCA9IGJhc2VXO1xuXHRcdFx0ZG4uaGVpZ2h0ID0gYmFzZUg7XG5cdFx0XHRcblx0XHRcdGNvbnN0IGdyYXAgPSBkbi5hZGRDb21wb25lbnQoY2MuR3JhcGhpY3MpO1xuXHRcdFx0Y29uc3QgciA9IFJhbmRvbUludCgxLDI1NSlcblx0XHRcdGNvbnN0IGcgPSBSYW5kb21JbnQoMSwyNTUpXG5cdFx0XHRjb25zdCBiID0gUmFuZG9tSW50KDEsMjU1KVxuXHRcdFx0Z3JhcC5maWxsQ29sb3I9Y2MuY29sb3IociwgZywgYiwgMTI3KTtcblx0XHRcdGNvbnN0IHt4OiByeCwgeTogcnksIHdpZHRoOiBydywgaGVpZ2h0OiByaH0gPSAgYXJlYS5yZWN0O1xuXHRcdFx0bGV0IHcgPSAocncgLyBiZ1cpICogYmFzZVc7XG5cdFx0XHRsZXQgaCA9IChyaCAvIGJnSCkgKiBiYXNlSDtcblx0XHRcdGxldCB4ID0gKHJ4IC8gYmdXKSAqIGJhc2VXIC0gYmFzZVcgLyAyO1xuXHRcdFx0bGV0IHkgPSBiYXNlSCAtICgocnkgLyBiZ0gpICogYmFzZUgpIC0gaCAtIGJhc2VIIC8gMjtcblx0XHRcdC8vIHcgKj0gc2NhbGVYXG5cdFx0XHQvLyBoICo9IHNjYWxlWVxuXHRcdFx0Ly8geCAqPSBzY2FsZVhcblx0XHRcdC8vIHkgKj0gc2NhbGVZXG4gICAgICAgICAgICAvLyBjb25zdCBwID0gYm94RGVidWdnZXIuY29udmVydFRvTm9kZVNwYWNlQVIoY2MudjIoeCx5KSk7XG5cdFx0XHQvLyB4ID0gcC54O1xuXHRcdFx0Ly8geSA9IHAueTtcblx0XHRcdGxibE5vZGUueCA9IHg7XG5cdFx0XHRsYmxOb2RlLnkgPSB5ICsgaDtcblx0XHRcdC8vIGRuLnNjYWxlWCA9IHNjYWxlWDtcblx0XHRcdC8vIGRuLnNjYWxlWSA9IHNjYWxlWTtcblx0XHRcdC8vIGRuLnNjYWxlID0gYXJlYS5tYXBTY2FsZTsgLy8gbWluU2NhbGU7IC8vIHRoaXMuX21hcFNjYWxlTWF4ICogYXJlYS5tYXBTY2FsZTsgLy8gO1xuXHRcdFx0Y29uc29sZS5sb2coJ1tkZWJ1Z10nLCBhcmVhLnNrZUpzb25EYXRhLm5hbWUsIHgsIHksIHcsIGgpO1xuXHRcdFx0Z3JhcC5maWxsUmVjdCh4LCB5LCB3LCBoKTtcblx0XHRcdGdyYXAuc3Ryb2tlKCk7XG5cdFx0XHRcblx0XHR9KTtcblxuXHR9LFxuXHRhZGRQcmVsb2FkQW5pbWEoKSB7XG5cblx0fSxcblxuXHRwcmVsb2FkKCkge1xuXG5cdFx0Y29uc3QgcHJlbG9hZEFyciA9IHRoaXMuX2ltYWdlUmVzTGlzdC5jb25jYXQodGhpcy5fYXVkaW9SZXNMaXN0KS5jb25jYXQodGhpcy5fYW5pbWFSZXNMaXN0KTtcblx0XHQvLyBjb25zb2xlLmxvZyhwcmVsb2FkQXJyKTtcblx0XHRjYy5hc3NldE1hbmFnZXIubG9hZEFueShwcmVsb2FkQXJyLCBudWxsLCAoZiwgdCwgaXRlbSkgPT4ge1xuXHRcdFx0Ly8gY29uc29sZS5sb2coZiwgdCwgaXRlbSlcblx0XHR9LCAoZXJyLCBkYXRhKSA9PiB7XG5cdFx0XHQvLyBjb25zb2xlLmxvZyhlcnIsIGRhdGEpO1xuXHRcdFx0Y29uc3QgZ3JvdW5kID0gY2MuZmluZChgQ2FudmFzL2ZyYW1lLWJvcmRlci9ncm91bmRgKTtcblx0XHRcdGNvbnN0IGdyb3VuZEJnID0gY2MuZmluZChgQ2FudmFzL2ZyYW1lLWJvcmRlci9ncm91bmQvYmdgKTtcblx0XHRcdGdyb3VuZEJnLmFjdGl2ZSA9IGZhbHNlO1xuXHRcdFx0Y29uc3QgYmFzZVJlY3QgPSB0aGlzLmRhdGEuYmdJdGVtLnJlY3Q7XG5cdFx0XHRnZXRTcHJpdGVGcmltZUJ5VXJsKHRoaXMuZGF0YS5iZ0l0ZW0udXJsLCAoc2YpID0+IHtcblx0XHRcdFx0Y29uc3QgZ3MgPSBncm91bmRCZy5nZXRDb21wb25lbnQoY2MuU3ByaXRlKTtcblx0XHRcdFx0Z3Muc3ByaXRlRnJhbWUgPSBzZjtcblx0XHRcdFx0Z3JvdW5kQmcuYWN0aXZlID0gdHJ1ZTtcblxuXHRcdFx0XHRsZXQgZGJDb3VudCA9IDA7XG5cdFx0XHRcdGxldCBmaW5pc2hEYkNvdW50ID0gMFxuXHRcdFx0XHRmb3IoY29uc3QgYmxvY2sgb2YgdGhpcy5kYXRhLmhvdFpvbmVJdGVtQXJyKSB7XG5cdFx0XHRcdFx0aWYgKGJsb2NrLmdJZHggPT0gJzAnIHx8IGJsb2NrLmdJZHggPT0gJzEnKSB7XG5cdFx0XHRcdFx0XHRkYkNvdW50Kys7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdGZvcihjb25zdCBibG9jayBvZiB0aGlzLmRhdGEuaG90Wm9uZUl0ZW1BcnIpIHtcblxuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdGlmIChibG9jay5nSWR4ID09ICcyJykge1xuXHRcdFx0XHRcdFx0Y29uc3QgczEgPSAoKGdyb3VuZC53aWR0aCAgLyBibG9jay5pbWdTaXplVykgKyAoZ3JvdW5kLmhlaWdodCAgLyBibG9jay5pbWdTaXplSCkpIC8gMlxuXHRcdFx0XHRcdFx0Y29uc3Qgbm9kZSA9IG5ldyBjYy5Ob2RlKCk7XG5cdFx0XHRcdFx0XHRub2RlLnBhcmVudCA9IGdyb3VuZDtcblx0XHRcdFx0XHRcdGNvbnN0IHNwciA9IG5vZGUuYWRkQ29tcG9uZW50KGNjLlNwcml0ZSk7XG5cdFx0XHRcdFx0XHRnZXRTcHJpdGVGcmltZUJ5VXJsKGJsb2NrLnBpY191cmwsIChzZikgPT4ge1xuXHRcdFx0XHRcdFx0c3ByLnNwcml0ZUZyYW1lID0gc2Y7XG5cdFx0XHRcdFx0XHRub2RlLnNjYWxlID0gczE7XG5cdFx0XHRcdFx0XHR9KVxuXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmIChibG9jay5nSWR4ID09ICcwJyB8fCBibG9jay5nSWR4ID09ICcxJykge1xuXG5cdFx0XHRcdFx0XHRjb25zdCBuID0gbmV3IGNjLk5vZGUoKTtcblx0XHRcdFx0XHRcdG4uc2NhbGUgPSAwLjI1O1xuXHRcdFx0XHRcdFx0bi5wYXJlbnQgPSBncm91bmQ7XG5cdFx0XHRcdFx0XHRuLmFjdGl2ZSA9IGZhbHNlO1xuXG5cdFx0XHRcdFx0XHRpZiAoYmxvY2suYW5pbVR5cGUgPT0gJ3NwaW5lJykge1xuXHRcdFx0XG5cdFx0XHRcdFx0XHRcdGNvbnN0IHNrZWxldG9uID0gbi5hZGRDb21wb25lbnQoc3AuU2tlbGV0b24pO1xuXHRcdFx0XHRcdFx0XHRuLmlzU3BpbmUgPSB0cnVlO1xuXG5cdFx0XHRcdFx0XHRcdGxvYWRTcGluZShza2VsZXRvbiwgYmxvY2sudGV4UG5nRGF0YS5uYW1lLCB7XG5cdFx0XHRcdFx0XHRcdFx0dGV4OiBibG9jay50ZXhQbmdEYXRhLnVybCwgXG5cdFx0XHRcdFx0XHRcdFx0YXRsYXM6IGJsb2NrLnRleEpzb25EYXRhLnVybCxcblx0XHRcdFx0XHRcdFx0XHRza2U6IGJsb2NrLnNrZUpzb25EYXRhLnVybCxcblx0XHRcdFx0XHRcdFx0fSkudGhlbigoe3dpZHRoLCBoZWlnaHR9KSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0bi53aWR0aCA9IHdpZHRoO1xuXHRcdFx0XHRcdFx0XHRcdG4uaGVpZ2h0ID0gaGVpZ2h0O1x0XG5cdFx0XHRcdFx0XHRcdFx0bi5hY3RpdmUgPSB0cnVlO1xuXHRcdFx0XHRcdFx0XHRcdC8vIGRiLnBsYXlBbmltYXRpb24oJ251bGwnLCAwKTtcblx0XHRcdFx0XHRcdFx0XHQvLyBza2VsZXRvbi5zZXRUb1NldHVwUG9zZSgpO1xuXHRcdFx0XHRcdFx0XHRcdHNrZWxldG9uLnNldEFuaW1hdGlvbigwLCAnZW5sYXJnZScsIHRydWUpO1x0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5fYWxsQW5pbWF0aW9uTm9kZXMucHVzaChuKTtcblx0XHRcdFx0XHRcdFx0XHRmaW5pc2hEYkNvdW50Kys7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coZmluaXNoRGJDb3VudCwgZGJDb3VudClcblx0XHRcdFx0XHRcdFx0XHRpZiAoZmluaXNoRGJDb3VudCA9PSBkYkNvdW50KSB7XG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLmxvYWRFbmQoKTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH0pLmNhdGNoKCgpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRmaW5pc2hEYkNvdW50Kys7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coZmluaXNoRGJDb3VudCwgZGJDb3VudClcblx0XHRcdFx0XHRcdFx0XHRpZiAoZmluaXNoRGJDb3VudCA9PSBkYkNvdW50KSB7XG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLmxvYWRFbmQoKTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XG5cdFx0XHRcdFx0XHRcdGNvbnN0IGRiID0gbi5hZGRDb21wb25lbnQoZHJhZ29uQm9uZXMuQXJtYXR1cmVEaXNwbGF5KTtcblxuXHRcdFx0XHRcdFx0XHRsb2FkRHJhZ29uQm9uZXMoZGIsIHtcblx0XHRcdFx0XHRcdFx0XHR0ZXg6IGJsb2NrLnRleFBuZ0RhdGEudXJsLCBcblx0XHRcdFx0XHRcdFx0XHRhdGxhczogYmxvY2sudGV4SnNvbkRhdGEudXJsLFxuXHRcdFx0XHRcdFx0XHRcdHNrZTogYmxvY2suc2tlSnNvbkRhdGEudXJsLFxuXHRcdFx0XHRcdFx0XHR9KS50aGVuKCh7d2lkdGgsIGhlaWdodH0pID0+IHtcblx0XHRcdFx0XHRcdFx0XHRuLndpZHRoID0gd2lkdGg7XG5cdFx0XHRcdFx0XHRcdFx0bi5oZWlnaHQgPSBoZWlnaHQ7XHRcblx0XHRcdFx0XHRcdFx0XHRuLmFjdGl2ZSA9IHRydWU7XG5cdFx0XHRcdFx0XHRcdFx0ZGIucGxheUFuaW1hdGlvbignbnVsbCcsIDApO1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMuX2FsbEFuaW1hdGlvbk5vZGVzLnB1c2gobik7XG5cdFx0XHRcdFx0XHRcdFx0ZmluaXNoRGJDb3VudCsrO1xuXHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKGZpbmlzaERiQ291bnQsIGRiQ291bnQpXG5cdFx0XHRcdFx0XHRcdFx0aWYgKGZpbmlzaERiQ291bnQgPT0gZGJDb3VudCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5sb2FkRW5kKCk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9KS5jYXRjaCgoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0ZmluaXNoRGJDb3VudCsrO1xuXHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKGZpbmlzaERiQ291bnQsIGRiQ291bnQpXG5cdFx0XHRcdFx0XHRcdFx0aWYgKGZpbmlzaERiQ291bnQgPT0gZGJDb3VudCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5sb2FkRW5kKCk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XG5cblx0XHRcdFx0XHRcdGlmIChibG9jay5nSWR4ID09ICcwJykge1xuXHRcdFx0XHRcdFx0XHRjb25zdCByZWN0SW5mbyA9IHtcblx0XHRcdFx0XHRcdFx0XHRub2RlOiBuLFxuXHRcdFx0XHRcdFx0XHRcdGF1ZGlvX3VybDogYmxvY2suYXVkaW9fdXJsICxcblx0XHRcdFx0XHRcdFx0XHRyZWN0OiB7XG5cdFx0XHRcdFx0XHRcdFx0XHR4OiBibG9jay5yZWN0LnggLyBiYXNlUmVjdC53aWR0aCxcblx0XHRcdFx0XHRcdFx0XHRcdHk6IGJsb2NrLnJlY3QueSAvIGJhc2VSZWN0LmhlaWdodCxcblx0XHRcdFx0XHRcdFx0XHRcdHdpZHRoOiBibG9jay5yZWN0LndpZHRoIC8gYmFzZVJlY3Qud2lkdGgsXG5cdFx0XHRcdFx0XHRcdFx0XHRoZWlnaHQ6IGJsb2NrLnJlY3QuaGVpZ2h0IC8gYmFzZVJlY3QuaGVpZ2h0LFxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRcdFx0dGhpcy5fZmlndXJlUG9pbnRSZWN0QXJyYXkucHVzaChyZWN0SW5mbyk7XG5cblx0XHRcdFx0XHRcdFx0Ly8gdGhpcy5hZGRSZWN0Tm9kZUxpc3RlbmVyKGJsb2NrKTtcblx0XHRcblx0XHRcdFx0XHRcdFx0aWYgKGJsb2NrLmxhYmVsVGV4dCkge1xuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IGsgPSArYmxvY2subGFiZWxUZXh0ICogMTAwMDtcblx0XHRcdFx0XHRcdFx0XHRpZighaXNOYU4oaykpIHtcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuX2hpbnRzTm9kZUxpc3QucHVzaCh7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdG5vZGU6IG4sXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGFmdGVyOiBrXG5cdFx0XHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdFx0XG5cdFx0XHQvLyBjb25zb2xlLmxvZyh0aGlzLmRhdGEpO1xuXHRcdFx0Y29uc29sZS5sb2coJ3Jlc291cmNlIHBlcmxvYWQgZmluaXNoJyk7XG5cbi8vIDw8PDw8PDwgSEVBRFxuLy8gPT09PT09PVxuLy8gXHRcdFx0aWYgKHdpbmRvdyAmJiB3aW5kb3dbXCJhaXJcIl0pIHtcbi8vIFx0XHRcdFx0Ly8gY2MuZmluZCgnQ2FudmFzJykub3BhY2l0eSA9IDA7XG4vLyBcdFx0XHRcdHdpbmRvdy5haXIub25Db3Vyc2VJblNjcmVlbiA9IChuZXh0KSA9PiB7XG4vLyBcdFx0XHRcdFx0Ly8gY2MuZmluZCgnQ2FudmFzJykub3BhY2l0eSA9IDI1NTtcbi8vIFx0XHRcdFx0XHR0aGlzLmxvYWRFbmQoKTtcbi8vIFx0XHRcdFx0XHRuZXh0KCk7XG4vLyBcdFx0XHRcdH1cbi8vIFx0XHRcdFx0d2luZG93LmFpci5oaWRlQWlyQ2xhc3NMb2FkaW5nKCk7XG4vLyBcdFx0XHR9IGVsc2Uge1xuLy8gXHRcdFx0XHR0aGlzLmxvYWRFbmQoKTtcbi8vIFx0XHRcdH1cbi8vID4+Pj4+Pj4gMmQ0NjFlMTkxMDU3MWJjZmM2YWQ0ZGM5M2MyY2VkYWZjMjA5MjNlYVxuXG5cdFx0XHRjYy5kZWJ1Zy5zZXREaXNwbGF5U3RhdHMoZmFsc2UpO1xuXHRcdH0pO1xuXHR9LFxuXG5cblx0bG9hZEVuZCgpIHtcblx0XHRpZiAod2luZG93ICYmIHdpbmRvd1tcImFpclwiXSAmJiB3aW5kb3dbXCJhaXJcIl0uaGlkZUFpckNsYXNzTG9hZGluZykge1xuXHRcdFx0d2luZG93W1wiYWlyXCJdLmhpZGVBaXJDbGFzc0xvYWRpbmcoKTtcblx0XHR9XG5cdFx0dGhpcy5pbml0RGF0YSgpO1xuXHRcdC8vIHRoaXMuaW5pdEF1ZGlvKCk7XG5cdFx0Ly8gdGhpcy5pbml0VmlldygpO1xuXHRcdHRoaXMuaW5pdEJnKCk7XG5cdFx0Ly8gdGhpcy5pbml0TGlzdGVuZXIoKTtcblx0XHR0aGlzLmRlYnVnR3JhcGhpY3MoKTtcblx0XHR0aGlzLmNyZWF0ZVN0YXRlTWFjaGluZSgpO1xuXHR9LFxuXG5cdF9jYW50b3VjaDogbnVsbCxcblx0aW5pdERhdGEoKSB7XG5cdFx0Ly8g5omA5pyJ5YWo5bGA5Y+Y6YePIOm7mOiupOmDveaYr251bGwgXG5cdFx0dGhpcy5fY2FudG91Y2ggPSB0cnVlO1xuXHR9LFxuXG5cdC8vIGF1ZGlvQnRuOiBudWxsLFxuXHQvLyBpbml0QXVkaW8oKSB7XG5cdC8vIFx0Y29uc3QgYXVkaW9Ob2RlID0gY2MuZmluZCgnQ2FudmFzL3Jlcy9hdWRpbycpO1xuXG5cdC8vIFx0Y29uc3QgZ2V0QXVkaW9CeVJlc05hbWUgPSAocmVzTmFtZSkgPT4ge1xuXHQvLyBcdFx0cmV0dXJuIGF1ZGlvTm9kZS5nZXRDaGlsZEJ5TmFtZShyZXNOYW1lKS5nZXRDb21wb25lbnQoY2MuQXVkaW9Tb3VyY2UpO1xuXHQvLyBcdH1cblxuXHQvLyBcdHRoaXMuYXVkaW9CdG4gPSBnZXRBdWRpb0J5UmVzTmFtZSgnYnRuJyk7XG5cblx0Ly8gfSxcblxuXG5cdC8vIGluaXRWaWV3KCkge1xuXG5cdC8vIFx0Ly8gdGhpcy5pbml0QmcoKTtcblx0Ly8gXHQvLyB0aGlzLmluaXRQaWMoKTtcblx0Ly8gXHQvLyB0aGlzLmluaXRCdG4oKTtcblx0Ly8gXHR0aGlzLmluaXRJY29uKCk7XG5cdC8vIH0sXG5cblx0YWRkUmVjdE5vZGVMaXN0ZW5lcihkYXRhKSB7XG5cblxuXHRcdGNvbnN0IGJnID0gY2MuZmluZChgQ2FudmFzL2ZyYW1lLWJvcmRlci9ncm91bmQvYmdgKTtcblxuXHRcdGNvbnN0IHJhdGUgPSAoYmcuc2NhbGUgKiBiZy53aWR0aCkgLyB0aGlzLmRhdGEuYmdJdGVtLnJlY3Qud2lkdGg7XG5cblx0XHRjb25zdCByZWN0Tm9kZSA9IG5ldyBjYy5Ob2RlKCk7XG5cdFx0cmVjdE5vZGUubmFtZSA9ICdyZWN0JyArIGRhdGEuaW5kZXg7XG5cdFx0YmcuYWRkQ2hpbGQocmVjdE5vZGUpO1xuXG5cblx0XHRjb25zdCBjdHggPSByZWN0Tm9kZS5hZGRDb21wb25lbnQoY2MuR3JhcGhpY3MpO1xuXHRcdC8vIOe6ouiJsuefqeW9olxuXHRcdGN0eC5saW5lV2lkdGggPSA0O1xuXHRcdGN0eC5zdHJva2VDb2xvciA9IGNjLkNvbG9yLkJMQUNLO1xuXHRcdGN0eC5maWxsQ29sb3IgPSBjYy5Db2xvci5XSElURS5zZXRBKDEwMCk7XG5cblx0XHRjb25zdCBzY2FsZSA9IHJhdGUgLyBiZy5zY2FsZVk7XG5cblx0XHRyZWN0Tm9kZS53aWR0aCA9IGRhdGEucmVjdC53aWR0aCAqIHNjYWxlO1xuXHRcdHJlY3ROb2RlLmhlaWdodCA9IGRhdGEucmVjdC5oZWlnaHQgKiBzY2FsZTtcblx0XHRyZWN0Tm9kZS54ID0gLWJnLndpZHRoIC8gMiArIGRhdGEucmVjdC54ICogc2NhbGU7XG5cdFx0cmVjdE5vZGUueSA9IGJnLmhlaWdodCAvIDIgLSBkYXRhLnJlY3QuaGVpZ2h0ICogc2NhbGUgLSBkYXRhLnJlY3QueSAqIHNjYWxlO1xuXG5cdFx0cmVjdE5vZGUuYW5jaG9yWCA9IHJlY3ROb2RlLmFuY2hvclkgPSAwO1xuXG5cblx0XHQvLyBpZiAocGFnZURhdGEuYmdJdGVtLmlzU2hvd0RlYnVnTGluZSkge1xuXHRcdFx0Y3R4LnJlY3QoMCwgMCwgcmVjdE5vZGUud2lkdGgsIHJlY3ROb2RlLmhlaWdodCk7XG5cdFx0Ly8gfVxuXHRcdGN0eC5zdHJva2UoKTtcblx0XHRjdHguZmlsbCgpO1xuXG5cdH0sXG5cblx0aW5pdEJnKCkge1xuXHRcdGNvbnN0IGJnTm9kZSA9IGNjLmZpbmQoJ0NhbnZhcy9iZycpO1xuXHRcdGJnTm9kZS5zY2FsZSA9IHRoaXMuX21hcFNjYWxlTWF4O1xuXHRcdGNvbnNvbGUubG9nKCd0aGlzLl9tYXBTY2FsZU1heCcsIHRoaXMuX21hcFNjYWxlTWF4KTtcblx0fSxcblxuXHRcblx0XG5cblx0Lyppbml0QnRuKCkge1xuXG5cdFx0dGhpcy5jdXJQYWdlID0gMDtcblx0XHRjb25zdCBib3R0b21QYXJ0ID0gY2MuZmluZCgnQ2FudmFzL2JvdHRvbVBhcnQnKTtcblx0XHRib3R0b21QYXJ0LnpJbmRleCA9IDU7IC8vIOaPkOmrmOWxgue6p1xuXG5cdFx0Ym90dG9tUGFydC54ID0gYm90dG9tUGFydC5wYXJlbnQud2lkdGggLyAyO1xuXHRcdGJvdHRvbVBhcnQueSA9IC1ib3R0b21QYXJ0LnBhcmVudC5oZWlnaHQgLyAyO1xuXG5cdFx0Y29uc3QgbGVmdEJ0bk5vZGUgPSBib3R0b21QYXJ0LmdldENoaWxkQnlOYW1lKCdidG5fbGVmdCcpO1xuXHRcdC8v6IqC54K55Lit5re75Yqg5LqGYnV0dG9u57uE5Lu2IOWImeWPr+S7pea3u+WKoGNsaWNr5LqL5Lu255uR5ZCsXG5cdFx0bGVmdEJ0bk5vZGUub24oJ2NsaWNrJywgKCkgPT4ge1xuXHRcdFx0aWYgKCF0aGlzLl9jYW50b3VjaCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHRpZiAodGhpcy5jdXJQYWdlID09IDApIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5jdXJQYWdlID0gMFxuXHRcdFx0dGhpcy5sZWZ0TW92ZSgpO1xuXG5cdFx0XHQvLyDmuLjmiI/nu5PmnZ/ml7bpnIDopoHosIPnlKjov5nkuKrmlrnms5XpgJrnn6Xns7vnu5/kvZzkuJrlrozmiJBcblx0XHRcdG9uSG9tZXdvcmtGaW5pc2goKTtcblxuXHRcdFx0Y2MuYXVkaW9FbmdpbmUucGxheSh0aGlzLmF1ZGlvQnRuLmNsaXAsIGZhbHNlLCAwLjgpXG5cdFx0fSlcblxuXHRcdGNvbnN0IHJpZ2h0QnRuTm9kZSA9IGJvdHRvbVBhcnQuZ2V0Q2hpbGRCeU5hbWUoJ2J0bl9yaWdodCcpO1xuXHRcdC8v6IqC54K55Lit5re75Yqg5LqGYnV0dG9u57uE5Lu2IOWImeWPr+S7pea3u+WKoGNsaWNr5LqL5Lu255uR5ZCsXG5cdFx0cmlnaHRCdG5Ob2RlLm9uKCdjbGljaycsICgpID0+IHtcblx0XHRcdGlmICghdGhpcy5fY2FudG91Y2gpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0aWYgKHRoaXMuY3VyUGFnZSA9PSAxKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0dGhpcy5jdXJQYWdlID0gMVxuXHRcdFx0dGhpcy5yaWdodE1vdmUoKTtcblxuXHRcdFx0Y2MuYXVkaW9FbmdpbmUucGxheSh0aGlzLmF1ZGlvQnRuLmNsaXAsIGZhbHNlLCAwLjUpXG5cdFx0fSlcblx0fSwqL1xuXG5cblxuXG5cdC8vIHVwZGF0ZSAoZHQpIHt9LFxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblx0X3RpbWVvdXRJZHM6IG51bGwsXG5cdF9pbnRlcnZhbElkczogbnVsbCxcblx0Ly8g55Sf5ZG95ZGo5pyfXG5cdG9uRGVzdHJveSgpIHtcblx0XHRjb25zb2xlLmxvZygnb3AxNSBvbkRlc3Ryb3knKTtcblx0XHR0aGlzLl90aW1lb3V0SWRzLmZvckVhY2goaWQgPT4ge1xuXHRcdFx0Y2xlYXJUaW1lb3V0KGlkKTtcblx0XHR9KTtcblx0XHR0aGlzLl9pbnRlcnZhbElkcy5mb3JFYWNoKGlkID0+IHtcblx0XHRcdGNsZWFySW50ZXJ2YWwoaWQpO1xuXHRcdH0pO1xuXHRcdHRoaXMuZ2FtZU1hY2hpbmVTZXJ2aWNlLnN0b3BDaGlsZCgpO1xuXHRcdHRoaXMuZ2FtZU1hY2hpbmVTZXJ2aWNlLnN0b3AoKTtcblx0XHRpZih3aW5kb3cuY291cnNld2FyZSAmJiB3aW5kb3cuY291cnNld2FyZS5jbG9zZU9zbW9GaW5nZXJSZWFkKSB7XG5cdFx0XHRpZiAodGhpcy5pc09wZW5lZE9zbW9GaW5nZXJSZWFkKSB7XG5cdFx0XHRcdHdpbmRvdy5jb3Vyc2V3YXJlLmNsb3NlT3Ntb0ZpbmdlclJlYWQoKVxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblxuXG5cblxuXG59KTtcbiJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0cy9PUDE1L3NjZW5lL09QMTUuanMiXSwibmFtZXMiOlsicHVyZSIsImFjdGlvbnMiLCJzZW5kIiwicmFpc2UiLCJzZW5kUGFyZW50IiwiY2MiLCJDbGFzcyIsIkNvbXBvbmVudCIsInByb3BlcnRpZXMiLCJyaWdodEF1ZGlvIiwidHlwZSIsIkF1ZGlvQ2xpcCIsIndyb25nQXVkaW8iLCJsb2dvQ2F0IiwiTm9kZSIsInBsYXlBbmkiLCJpZHgiLCJuYW1lIiwib3B0aW9ucyIsInRpbWVzIiwiY2IiLCJjYWxsYmFjayIsIm5vZGUiLCJfZmlndXJlUG9pbnRSZWN0QXJyYXkiLCJkcmFnb25EaXNwbGF5IiwiZ2V0Q29tcG9uZW50IiwiZHJhZ29uQm9uZXMiLCJBcm1hdHVyZURpc3BsYXkiLCJzdGF0ZSIsInBsYXlBbmltYXRpb24iLCJvbkxvYWQiLCJfdGltZW91dElkcyIsIl9pbnRlcnZhbElkcyIsImluaXRTY2VuZURhdGEiLCJpbml0U2l6ZSIsIndpbmRvdyIsImNjYyIsIl9pbWFnZVJlc0xpc3QiLCJfYXVkaW9SZXNMaXN0IiwiX2FuaW1hUmVzTGlzdCIsIl9sYXN0RmluZ2VyUG9zaXRpb24iLCJfaGludHNOb2RlTGlzdCIsIl9hbGxBbmltYXRpb25Ob2RlcyIsInBvcyIsImRpcnR5IiwiX2Rlc2lnblNpemUiLCJfZnJhbWVTaXplIiwiX21hcFNjYWxlTWluIiwiX21hcFNjYWxlTWF4IiwiX2NvY29zU2NhbGUiLCJzY3JlZW5fc2l6ZSIsInZpZXciLCJnZXRGcmFtZVNpemUiLCJ3aWR0aCIsImhlaWdodCIsImRlc2lnbl9zaXplIiwiQ2FudmFzIiwiaW5zdGFuY2UiLCJkZXNpZ25SZXNvbHV0aW9uIiwiZiIsImZpdEhlaWdodCIsImZpdFdpZHRoIiwiZnJhbWVTaXplIiwiZ2V0RGVzaWduUmVzb2x1dGlvblNpemUiLCJzeCIsIndpblNpemUiLCJzeSIsIk1hdGgiLCJtaW4iLCJtYXgiLCJjcmVhdGVTdGF0ZU1hY2hpbmUiLCJjaGVjayIsInRhcmdldCIsImNvbmQiLCJjdHgiLCJldnQiLCJjb25zb2xlIiwibG9nIiwicXVlc3Rpb25JbmRleCIsInF1ZXN0aW9uc0NvdW50IiwiUXVlc3Rpb25TdGF0ZSIsImlkIiwiaW5pdGlhbCIsInN0YXRlcyIsImhpbnQiLCJpbnZva2UiLCJzcmMiLCJldmVudCIsInF1ZXN0aW9uUGxheVRpbWVzIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJxdWVzdGlvbnMiLCJhdWRpb191cmwiLCJvbkRvbmUiLCJvbkVycm9yIiwiYW5zd2VyIiwiYWZ0ZXIiLCJjb250ZXh0Iiwib25SZWNlaXZlIiwic2V0SW50ZXJ2YWwiLCJyZWdpb24iLCJyZXN1bHQiLCJjaGVja0luUmVnaW9uIiwicmVjdCIsInB1c2giLCJjbGVhckludGVydmFsIiwib24iLCJSSUdIVCIsIldST05HIiwicmlnaHQiLCJhbiIsImFjdGl2ZSIsImlzU3BpbmUiLCJza2VsZXRvbiIsInNwIiwiU2tlbGV0b24iLCJzZXRUb1NldHVwUG9zZSIsInNldFRpbWVvdXQiLCJzZXRBbmltYXRpb24iLCJkZExvZ29DYXQiLCJvbmNlIiwiRXZlbnRPYmplY3QiLCJDT01QTEVURSIsIndyb25nIiwibWF4UXVlc3Rpb25UcnlUaW1lcyIsIndyb25nRWZmZWN0IiwiaW5jbHVkZXMiLCJkYXRhIiwiUXVlc3Rpb25zQXJyYXlTdGF0dXMiLCJwbGF5IiwibmV4dCIsIkNIRUNLIiwibGVuZ3RoIiwiYmVnaW4iLCJjb3Vyc2V3YXJlIiwib3Blbk9zbW9GaW5nZXJSZWFkIiwiaXNPcGVuZWRPc21vRmluZ2VyUmVhZCIsImJlZ2luX2F1ZGlvIiwiZ3VpZGUiLCJndWlkZV9hdWRpbyIsInBsYXlpbmciLCJlbnRyeSIsImFzc2V0TWFuYWdlciIsImxvYWRSZW1vdGUiLCJwbGF5aW5nX2F1ZGlvIiwiZXJyIiwiYXVkaW9DbGlwIiwiYXVkaW9FbmdpbmUiLCJwbGF5TXVzaWMiLCJmb3JFYWNoIiwiYmxvY2siLCJleGl0Iiwic3RvcE11c2ljIiwiTkVYVCIsImVuZCIsImNsb3NlT3Ntb0ZpbmdlclJlYWQiLCJlbmRfYXVkaW8iLCJpIiwidCIsImsiLCJfYXJtYXR1cmVLZXkiLCJhZGRFdmVudExpc3RlbmVyIiwiYmVnaW5fc2VwX3RpbWUiLCJnYW1lTWFjaGluZSIsImdhbWVNYWNoaW5lU2VydmljZSIsIm9uVHJhbnNpdGlvbiIsInN0YXJ0IiwiZ2V0RGF0YSIsImJpbmQiLCJnZXREZWZhdWx0RGF0YSIsIkpTT04iLCJwYXJzZSIsInN0cmluZ2lmeSIsInByZWxvYWRJdGVtIiwiYWlyIiwib3Ntb0ZpbmdlclJlYWRDYWxsYmFjayIsInJlc3VsdE9iaiIsImZpbmdlcl9wb3NfaW5fcGFnZSIsInAiLCJ4IiwieSIsImRlYnVnUG9pbnRlciIsImlzRGVidWciLCJyIiwidyIsImgiLCJmdW5jIiwibWlkZGxlTGF5ZXIiLCJmaW5kIiwibWlkZGxlTGF5ZXJDb21wb25lbnQiLCJhZGRQcmVsb2FkSW1hZ2UiLCJhZGRQcmVsb2FkQXVkaW8iLCJhZGRQcmVsb2FkQW5pbWEiLCJwcmVsb2FkIiwidXJsIiwiYmdJdGVtIiwiaG90Wm9uZUl0ZW1BcnIiLCJxIiwiZ0lkeCIsInRleFBuZ0RhdGEiLCJwaWNfdXJsIiwicHJlcGFyZUF1ZGlvQ2xpcCIsImtleSIsIndyb25nX2F1ZGlvIiwicmlnaHRfYXVkaW8iLCJ3cm9uZ19hdWRpbzEiLCJ3cm9uZ19hdWRpbzIiLCJib3hEZWJ1Z2dlciIsIlBPSU5URVJfTk9ERSIsInBhcmVudCIsImFkZENvbXBvbmVudCIsIkdyYXBoaWNzIiwiZ3JhcCIsImNsZWFyIiwiZ3JvdW5kIiwiYmFzZVciLCJiYXNlSCIsInB4IiwicHkiLCJwbiIsImZpbGxDb2xvciIsImNvbG9yIiwiY2lyY2xlIiwiZmlsbCIsInN0cm9rZSIsImRlYnVnR3JhcGhpY3MiLCJjYW52YXMiLCJiZ1ciLCJiZ0giLCJzY2FsZVgiLCJzY2FsZVkiLCJhZGRlZCIsImFyZWEiLCJkbiIsImxibE5vZGUiLCJsYmwiLCJMYWJlbCIsInN0cmluZyIsInNrZUpzb25EYXRhIiwic3Vic3RyaW5nIiwiZyIsImIiLCJyeCIsInJ5IiwicnciLCJyaCIsImZpbGxSZWN0IiwicHJlbG9hZEFyciIsImNvbmNhdCIsImxvYWRBbnkiLCJpdGVtIiwiZ3JvdW5kQmciLCJiYXNlUmVjdCIsInNmIiwiZ3MiLCJTcHJpdGUiLCJzcHJpdGVGcmFtZSIsImRiQ291bnQiLCJmaW5pc2hEYkNvdW50IiwiczEiLCJpbWdTaXplVyIsImltZ1NpemVIIiwic3ByIiwic2NhbGUiLCJuIiwiYW5pbVR5cGUiLCJ0ZXgiLCJhdGxhcyIsInRleEpzb25EYXRhIiwic2tlIiwidGhlbiIsImxvYWRFbmQiLCJkYiIsInJlY3RJbmZvIiwibGFiZWxUZXh0IiwiaXNOYU4iLCJkZWJ1ZyIsInNldERpc3BsYXlTdGF0cyIsImhpZGVBaXJDbGFzc0xvYWRpbmciLCJpbml0RGF0YSIsImluaXRCZyIsIl9jYW50b3VjaCIsImFkZFJlY3ROb2RlTGlzdGVuZXIiLCJiZyIsInJhdGUiLCJyZWN0Tm9kZSIsImluZGV4IiwiYWRkQ2hpbGQiLCJsaW5lV2lkdGgiLCJzdHJva2VDb2xvciIsIkNvbG9yIiwiQkxBQ0siLCJXSElURSIsInNldEEiLCJhbmNob3JYIiwiYW5jaG9yWSIsIkJ1dHRvbiIsIl94IiwiX3kiLCJfdyIsIl9oIiwiYmdOb2RlIiwib25EZXN0cm95IiwiY2xlYXJUaW1lb3V0Iiwic3RvcENoaWxkIiwic3RvcCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7OztJQUNRQSxPQUFvQ0MsZ0JBQXBDRDtJQUFPRSxPQUE2QkQsZ0JBQTdCQztJQUFNQyxRQUF1QkYsZ0JBQXZCRTtJQUFPQyxhQUFnQkgsZ0JBQWhCRztBQUc1QkMsRUFBRSxDQUFDQyxLQUFILENBQVM7QUFFUixhQUFTRCxFQUFFLENBQUNFLFNBRko7QUFJUkMsRUFBQUEsVUFBVSxFQUFFO0FBQ1g7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FB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QUUsSUE3bkNMO0FBOG5DUkMsRUFBQUEsWUFBWSxFQUFFLElBOW5DTjtBQStuQ1I7QUFDQStRLEVBQUFBLFNBaG9DUSx1QkFnb0NJO0FBQ1huTyxJQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBWSxnQkFBWjs7QUFDQSxTQUFLOUMsV0FBTCxDQUFpQnVILE9BQWpCLENBQXlCLFVBQUFyRSxFQUFFLEVBQUk7QUFDOUIrTixNQUFBQSxZQUFZLENBQUMvTixFQUFELENBQVo7QUFDQSxLQUZEOztBQUdBLFNBQUtqRCxZQUFMLENBQWtCc0gsT0FBbEIsQ0FBMEIsVUFBQXJFLEVBQUUsRUFBSTtBQUMvQnlCLE1BQUFBLGFBQWEsQ0FBQ3pCLEVBQUQsQ0FBYjtBQUNBLEtBRkQ7O0FBR0EsU0FBS29GLGtCQUFMLENBQXdCNEksU0FBeEI7QUFDQSxTQUFLNUksa0JBQUwsQ0FBd0I2SSxJQUF4Qjs7QUFDQSxRQUFHL1EsTUFBTSxDQUFDb0csVUFBUCxJQUFxQnBHLE1BQU0sQ0FBQ29HLFVBQVAsQ0FBa0JxQixtQkFBMUMsRUFBK0Q7QUFDOUQsVUFBSSxLQUFLbkIsc0JBQVQsRUFBaUM7QUFDaEN0RyxRQUFBQSxNQUFNLENBQUNvRyxVQUFQLENBQWtCcUIsbUJBQWxCO0FBQ0E7QUFDRDtBQUNEO0FBL29DTyxDQUFUIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBvbkhvbWV3b3JrRmluaXNoLCBSYW5kb21JbnQsIHBsYXlBdWRpb0J5VXJsLCBsb2FkRHJhZ29uQm9uZXMsIGdldFNwcml0ZUZyaW1lQnlVcmwsIGxvYWRTcGluZSB9IGZyb20gXCIuLi9zY3JpcHQvdXRpbFwiO1xuaW1wb3J0IHsgZGVmYXVsdERhdGEgfSBmcm9tIFwiLi4vc2NyaXB0L2RlZmF1bHREYXRhXCI7XG5pbXBvcnQgeyBhc3NpZ24sIGNyZWF0ZU1hY2hpbmUsIGludGVycHJldCwgYWN0aW9ucywgZm9yd2FyZFRvLCBtYXRjaGVzU3RhdGUgIH0gZnJvbSBcIi4uL3NjcmlwdC94c3RhdGVcIjtcbmNvbnN0IHsgcHVyZSAsIHNlbmQsIHJhaXNlLCBzZW5kUGFyZW50ICB9ID0gYWN0aW9ucztcblxuXG5jYy5DbGFzcyh7XG5cblx0ZXh0ZW5kczogY2MuQ29tcG9uZW50LFxuXG5cdHByb3BlcnRpZXM6IHtcblx0XHQvKmFudDoge1xuXHRcdFx0ZGVmYXVsdDogbnVsbCxcblx0XHRcdHR5cGU6IGNjLk5vZGUsXG5cdFx0fSxcblx0XHRhcHBsZToge1xuXHRcdFx0ZGVmYXVsdDogbnVsbCxcblx0XHRcdHR5cGU6IGNjLk5vZGUsXG5cdFx0fSxcblx0XHRiaXJkOiB7XG5cdFx0XHRkZWZhdWx0OiBudWxsLFxuXHRcdFx0dHlwZTogY2MuTm9kZSxcblx0XHR9LFxuXHRcdGNhcjoge1xuXHRcdFx0ZGVmYXVsdDogbnVsbCxcblx0XHRcdHR5cGU6IGNjLk5vZGUsXG5cdFx0fSxcblx0XHRjYXQ6IHtcblx0XHRcdGRlZmF1bHQ6IG51bGwsXG5cdFx0XHR0eXBlOiBjYy5Ob2RlLFxuXHRcdH0sXG5cdFx0Y293OiB7XG5cdFx0XHRkZWZhdWx0OiBudWxsLFxuXHRcdFx0dHlwZTogY2MuTm9kZSxcblx0XHR9LFxuXHRcdGR1Y2s6IHtcblx0XHRcdGRlZmF1bHQ6IG51bGwsXG5cdFx0XHR0eXBlOiBjYy5Ob2RlLFxuXHRcdH0sXG5cdFx0ZWdnOiB7XG5cdFx0XHRkZWZhdWx0OiBudWxsLFxuXHRcdFx0dHlwZTogY2MuTm9kZSxcblx0XHR9LFxuXHRcdGZhcm1lcjoge1xuXHRcdFx0ZGVmYXVsdDogbnVsbCxcblx0XHRcdHR5cGU6IGNjLk5vZGUsXG5cdFx0fSxcblx0XHRmaXNoOiB7XG5cdFx0XHRkZWZhdWx0OiBudWxsLFxuXHRcdFx0dHlwZTogY2MuTm9kZSxcblx0XHR9LFxuXHRcdGdpcmw6IHtcblx0XHRcdGRlZmF1bHQ6IG51bGwsXG5cdFx0XHR0eXBlOiBjYy5Ob2RlLFxuXHRcdH0sXG5cdFx0aGVuOiB7XG5cdFx0XHRkZWZhdWx0OiBudWxsLFxuXHRcdFx0dHlwZTogY2MuTm9kZSxcblx0XHR9LFxuXHRcdGhvdXNlOiB7XG5cdFx0XHRkZWZhdWx0OiBudWxsLFxuXHRcdFx0dHlwZTogY2MuTm9kZSxcblx0XHR9LCovXG5cdFx0cmlnaHRBdWRpbzoge1xuXHRcdFx0ZGVmYXVsdDogbnVsbCxcblx0XHRcdHR5cGU6IGNjLkF1ZGlvQ2xpcCxcblx0XHR9LFxuXHRcdHdyb25nQXVkaW86IHtcblx0XHRcdGRlZmF1bHQ6IG51bGwsXG5cdFx0XHR0eXBlOiBjYy5BdWRpb0NsaXAsXG5cdFx0fSxcblx0XHRsb2dvQ2F0OiB7XG5cdFx0XHRkZWZhdWx0OiBudWxsLFxuXHRcdFx0dHlwZTogY2MuTm9kZVxuXHRcdH1cblxuXHR9LFxuXG5cdHBsYXlBbmkoaWR4LCBuYW1lLCBvcHRpb25zKSB7XG5cdFx0Y29uc3QgdGltZXMgPSAob3B0aW9ucyAmJiBvcHRpb25zLnRpbWVzKSB8fCAxO1xuXHRcdGNvbnN0IGNiID0gKG9wdGlvbnMgJiYgb3B0aW9ucy5jYWxsYmFjaykgfHwgbnVsbDtcblx0XHQvLyBjb25zdCBjYXQgPSBjYy5maW5kKGBDYW52YXMvZnJhbWUtYm9yZGVyL2dyb3VuZC8ke25vZGV9YCk7XG5cdFx0Y29uc3Qgbm9kZSA9IHRoaXMuX2ZpZ3VyZVBvaW50UmVjdEFycmF5W2lkeF0ubm9kZVxuXHRcdHZhciBkcmFnb25EaXNwbGF5ID0gbm9kZS5nZXRDb21wb25lbnQoZHJhZ29uQm9uZXMuQXJtYXR1cmVEaXNwbGF5KTtcblxuXHRcdGNvbnN0IHN0YXRlID0gZHJhZ29uRGlzcGxheS5wbGF5QW5pbWF0aW9uKG5hbWUsIHRpbWVzKTtcblx0XHQvLyBkcmFnb25EaXNwbGF5LmFkZEV2ZW50TGlzdGVuZXIoZHJhZ29uQm9uZXMuRXZlbnRPYmplY3QuQ09NUExFVEUsIChldmVudCkgPT4ge1xuXHRcdC8vIFx0Ly9UT0RPIOi/memHjOWGmeinpuWPkeS6i+S7tlxuXHRcdC8vIFx0Ly9ldmVudC5uYW1l5Li65LqL5Lu25ZCN56ewXG5cdFx0Ly8gXHRjb25zb2xlLmxvZyhldmVudC5uYW1lKVxuXHRcdC8vIH0sIHRoaXMpO1xuXHRcdC8vIGFuaW1hdGlvbkRpc3BsYXkuYWRkRXZlbnRMaXN0ZW5lcihkcmFnb25Cb25lcy5FdmVudE9iamVjdC5DT01QTEVURSwgY29tcGxldGVDYWxsYmFjayk7XG5cdFx0cmV0dXJuIHN0YXRlO1xuXHR9LFxuXHQvLyDnlJ/lkb3lkajmnJ8gb25Mb2FkXG5cdG9uTG9hZCgpIHtcblx0XHR0aGlzLl90aW1lb3V0SWRzID0gW107XG5cdFx0dGhpcy5faW50ZXJ2YWxJZHMgPSBbXTtcblx0XHR0aGlzLmluaXRTY2VuZURhdGEoKTtcblx0XHR0aGlzLmluaXRTaXplKCk7XG5cdFx0d2luZG93LmNjYyA9IHRoaXM7XG5cdH0sXG5cblx0X2ltYWdlUmVzTGlzdDogbnVsbCxcblx0X2F1ZGlvUmVzTGlzdDogbnVsbCxcblx0X2FuaW1hUmVzTGlzdDogbnVsbCxcblxuXHRfbGFzdEZpbmdlclBvc2l0aW9uOiBudWxsLFxuXG5cdF9oaW50c05vZGVMaXN0IDogbnVsbCxcblx0X2ZpZ3VyZVBvaW50UmVjdEFycmF5OiBudWxsLFxuXG5cdF9hbGxBbmltYXRpb25Ob2RlczogbnVsbCxcblxuXHRpbml0U2NlbmVEYXRhKCkge1xuXHRcdHRoaXMuX2ltYWdlUmVzTGlzdCA9IFtdO1xuXHRcdHRoaXMuX2F1ZGlvUmVzTGlzdCA9IFtdO1xuXHRcdHRoaXMuX2FuaW1hUmVzTGlzdCA9IFtdO1xuXG5cdFx0dGhpcy5fYWxsQW5pbWF0aW9uTm9kZXMgPSBbXTtcblx0XHR0aGlzLl9oaW50c05vZGVMaXN0ID0gW107XG5cdFx0dGhpcy5fbGFzdEZpbmdlclBvc2l0aW9uPSB7XG5cdFx0XHRwb3M6IG51bGwsXG5cdFx0XHRkaXJ0eTogZmFsc2Vcblx0XHR9O1xuXHRcdHRoaXMuX2ZpZ3VyZVBvaW50UmVjdEFycmF5ID0gW107XG5cdH0sXG5cblx0X2Rlc2lnblNpemU6IG51bGwsICAvLyDorr7orqHliIbovqjnjodcblx0X2ZyYW1lU2l6ZTogbnVsbCwgIC8vIOWxj+W5leWIhui+qOeOh1xuXHRfbWFwU2NhbGVNaW46IG51bGwsICAvLyDlnLrmma/kuK3luLjnlKjnvKnmlL7vvIjlj5blpKflgLzvvIlcblx0X21hcFNjYWxlTWF4OiBudWxsLCAgLy8g5Zy65pmv5Lit5bi455So57yp5pS+77yI5Y+W5bCP5YC877yJXG5cdF9jb2Nvc1NjYWxlOiBudWxsLCAgLy8gY29jb3Mg6Ieq57yp5pS+IO+8iOi+g+WwkeeUqOWIsO+8iVxuXHRcblx0aW5pdFNpemUoKSB7XG5cdFx0Ly8g5rOo5oSPY2Mud2luU2l6ZeWPquacieWcqOmAgumFjeWQjijkv67mlLlmaXRIZWlnaHQvZml0V2lkdGjlkI4p5omN6IO96I635Y+W5Yiw5q2j56Gu55qE5YC8LOWboOatpOS9v+eUqGNjLmdldEZyYW1lU2l6ZSgp5p2l6I635Y+W5Yid5aeL55qE5bGP5bmV5aSn5bCPXG5cdFx0bGV0IHNjcmVlbl9zaXplID0gY2Mudmlldy5nZXRGcmFtZVNpemUoKS53aWR0aCAvIGNjLnZpZXcuZ2V0RnJhbWVTaXplKCkuaGVpZ2h0XG5cdFx0bGV0IGRlc2lnbl9zaXplID0gY2MuQ2FudmFzLmluc3RhbmNlLmRlc2lnblJlc29sdXRpb24ud2lkdGggLyBjYy5DYW52YXMuaW5zdGFuY2UuZGVzaWduUmVzb2x1dGlvbi5oZWlnaHRcblx0XHRsZXQgZiA9IHNjcmVlbl9zaXplID49IGRlc2lnbl9zaXplXG5cdFx0Y2MuQ2FudmFzLmluc3RhbmNlLmZpdEhlaWdodCA9IGZcblx0XHRjYy5DYW52YXMuaW5zdGFuY2UuZml0V2lkdGggPSAhZlxuXG5cdFx0Y29uc3QgZnJhbWVTaXplID0gY2Mudmlldy5nZXRGcmFtZVNpemUoKTtcblx0XHR0aGlzLl9mcmFtZVNpemUgPSBmcmFtZVNpemU7XG5cblx0XHR0aGlzLl9kZXNpZ25TaXplID0gY2Mudmlldy5nZXREZXNpZ25SZXNvbHV0aW9uU2l6ZSgpO1xuXG5cdFx0bGV0IHN4ID0gY2Mud2luU2l6ZS53aWR0aCAvIGZyYW1lU2l6ZS53aWR0aDtcblx0XHRsZXQgc3kgPSBjYy53aW5TaXplLmhlaWdodCAvIGZyYW1lU2l6ZS5oZWlnaHQ7XG5cdFx0dGhpcy5fY29jb3NTY2FsZSA9IE1hdGgubWluKHN4LCBzeSk7XG5cblx0XHRzeCA9IGZyYW1lU2l6ZS53aWR0aCAvIHRoaXMuX2Rlc2lnblNpemUud2lkdGg7XG5cdFx0c3kgPSBmcmFtZVNpemUuaGVpZ2h0IC8gdGhpcy5fZGVzaWduU2l6ZS5oZWlnaHQ7XG5cdFx0dGhpcy5fbWFwU2NhbGVNaW4gPSBNYXRoLm1pbihzeCwgc3kpICogdGhpcy5fY29jb3NTY2FsZTtcblx0XHR0aGlzLl9tYXBTY2FsZU1heCA9IE1hdGgubWF4KHN4LCBzeSkgKiB0aGlzLl9jb2Nvc1NjYWxlO1xuXHR9LFxuXHRjcmVhdGVTdGF0ZU1hY2hpbmUoKXtcblx0XHRjb25zdCBjaGVjayA9ICBbXG5cdFx0XHRcdFx0XHRcdHsgdGFyZ2V0OiAnI2dhbWUuZW5kJywgY29uZDogKGN0eCwgZXZ0KSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ1thbnN3ZXIgTkVYVF0gY2hlY2sgaWYgZW5kJywgY3R4LnF1ZXN0aW9uSW5kZXggPj0gY3R4LnF1ZXN0aW9uc0NvdW50IC0gMSk7XG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuIGN0eC5xdWVzdGlvbkluZGV4ID49IGN0eC5xdWVzdGlvbnNDb3VudCAtMVxuXG5cdFx0XHRcdFx0XHRcdH0gfSxcbiAgICAgICAgXHRcdFx0XHRcdHsgdGFyZ2V0OiAnaGludCcgfSAvLyByZWVudGVyICdoaW50JyBzdGF0ZVxuXHRcdFx0XHRcdFx0XVxuXHRcdGNvbnN0IFF1ZXN0aW9uU3RhdGUgPSB7XG5cdFx0XHRpZDogJ3F1ZXN0aW9uJyxcblx0XHRcdGluaXRpYWw6ICdoaW50Jyxcblx0XHRcdHN0YXRlczoge1xuXHRcdFx0XHRoaW50OiB7XG5cdFx0XHRcdFx0aW52b2tlOiB7XG5cdFx0XHRcdFx0XHRzcmM6IChjdHgsIGV2ZW50KSA9PiB7XG5cdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKGBbaGludF0gcGxheSBxdWVzdGlvbiAke2N0eC5xdWVzdGlvbkluZGV4fTogJHtjdHgucXVlc3Rpb25QbGF5VGltZXMgfSBhdWRpb2ApO1xuXHRcdFx0XHRcdFx0XHRjdHgucXVlc3Rpb25QbGF5VGltZXMgKz0gMTtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLHJlamVjdCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdHBsYXlBdWRpb0J5VXJsKGN0eC5xdWVzdGlvbnNbY3R4LnF1ZXN0aW9uSW5kZXhdLmF1ZGlvX3VybCwgKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ2hpbnQgZmluaXNoJyk7XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXNvbHZlKClcblx0XHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdG9uRG9uZTogJ2Fuc3dlcicsXG5cdFx0XHRcdFx0XHRvbkVycm9yOiAnYW5zd2VyJ1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSxcblx0XHRcdFx0YW5zd2VyOiB7XG5cdFx0XHRcdFx0YWZ0ZXI6IHtcblx0XHRcdFx0XHRcdDgwMDA6IFtcbiAgICAgICAgXHRcdFx0XHRcdHsgXG5cdFx0XHRcdFx0XHRcdFx0dGFyZ2V0OiAnd3JvbmcnLFxuXHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHR9IC8vIHJlZW50ZXIgJ2hpbnQnIHN0YXRlXG5cdFx0XHRcdFx0XHRdXG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdGludm9rZToge1xuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRzcmM6IChjb250ZXh0LCBldmVudCkgPT4gKGNhbGxiYWNrLCBvblJlY2VpdmUpID0+IHtcblx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdbYW5zd2VyXSB0aGlua2luZyBhbmQgcGxheWluZycpO1xuXHRcdFx0XHRcdFx0XHQvLyBjaGVjayBldmVyeSBzZWNvbmRcblx0XHRcdFx0XHRcdFx0Y29uc3QgaWQgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0aWYgKCF0aGlzLl9sYXN0RmluZ2VyUG9zaXRpb24uZGlydHkpIHtcblx0XHRcdFx0XHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0Y29uc3QgcmVnaW9uID0gY29udGV4dC5xdWVzdGlvbnNbY29udGV4dC5xdWVzdGlvbkluZGV4XTtcblx0XHRcdFx0XHRcdFx0XHRjb25zdCByZXN1bHQgPSB0aGlzLmNoZWNrSW5SZWdpb24ocmVnaW9uLnJlY3QpO1xuXHRcdFx0XHRcdFx0XHRcdGlmIChyZXN1bHQgPT09IG51bGwpIHtcblx0XHRcdFx0XHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ1tHZW5pc2UgSlNdIGNoZWNrSW5SZWdpb24nICsgcmVzdWx0KVxuXHRcdFx0XHRcdFx0XHRcdGlmIChyZXN1bHQpIHtcblx0XHRcdFx0XHRcdFx0XHRcdGNhbGxiYWNrKCdSSUdIVCcpXG5cdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdGNhbGxiYWNrKCdXUk9ORycpXG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9LCAxMDApO1xuXHRcdFx0XHRcdFx0XHR0aGlzLl9pbnRlcnZhbElkcy5wdXNoKGlkKTtcblx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0Ly8gUGVyZm9ybSBjbGVhbnVwXG5cdFx0XHRcdFx0XHRcdHJldHVybiAoKSA9PiBjbGVhckludGVydmFsKGlkKTtcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdG9uOiB7XG5cdFx0XHRcdFx0XHRSSUdIVDoge1xuXHRcdFx0XHRcdFx0XHR0YXJnZXQ6ICdyaWdodCcsXG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0V1JPTkc6IHtcblx0XHRcdFx0XHRcdFx0dGFyZ2V0OiAnd3JvbmcnLFxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSxcblx0XHRcdFx0XG5cdFx0XHRcdHJpZ2h0OiB7XG5cdFx0XHRcdFx0aW52b2tlOiB7XG5cdFx0XHRcdFx0XHRzcmM6IChjb250ZXh0LCBldmVudCkgPT4ge1xuXHRcdFx0XHRcdFx0XHR0aGlzLl9sYXN0RmluZ2VyUG9zaXRpb24ucG9zID0gbnVsbDtcblx0XHRcdFx0XHRcdFx0dGhpcy5fbGFzdEZpbmdlclBvc2l0aW9uLmRpcnR5ID0gZmFsc2U7XG5cdFx0XHRcdFx0XHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ2Fuc3dlciByaWdodCcpO1xuXHRcdFx0XHRcdFx0XHRcdC8vIHRoaXMucGxheUFuaShjb250ZXh0LnF1ZXN0aW9uSW5kZXgsICdub3JtYWwnKVxuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IGFuID0gY29udGV4dC5xdWVzdGlvbnNbY29udGV4dC5xdWVzdGlvbkluZGV4XS5ub2RlO1xuXHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdpbiByaWdodCAnICsgKHR5cGVvZiBhbikpXG5cdFx0XHRcdFx0XHRcdFx0YW4uYWN0aXZlID0gdHJ1ZTtcblxuXHRcdFx0XHRcdFx0XHRcdGlmIChhbi5pc1NwaW5lKSB7XG5cblx0XHRcdFx0XHRcdFx0XHRcdGNvbnN0IHNrZWxldG9uID0gYW4uZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKTtcblx0XHRcdFx0XHRcdFx0XHRcdHNrZWxldG9uLnNldFRvU2V0dXBQb3NlKCk7XG5cdFx0XHRcdFx0XHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0c2tlbGV0b24uc2V0QW5pbWF0aW9uKDAsICdub3JtYWwnLCB0cnVlKTtcblx0XHRcdFx0XHRcdFx0XHRcdH0sIDEpO1xuXHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdGNvbnN0IGRyYWdvbkRpc3BsYXkgPSBhbi5nZXRDb21wb25lbnQoZHJhZ29uQm9uZXMuQXJtYXR1cmVEaXNwbGF5KTtcblx0XHRcdFx0XHRcdFx0XHRcdGRyYWdvbkRpc3BsYXkucGxheUFuaW1hdGlvbignbm9ybWFsJywgMCk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdFx0Y29uc3QgZGRMb2dvQ2F0ID0gdGhpcy5sb2dvQ2F0LmdldENvbXBvbmVudChkcmFnb25Cb25lcy5Bcm1hdHVyZURpc3BsYXkpXG5cdFx0XHRcdFx0XHRcdFx0ZGRMb2dvQ2F0LnBsYXlBbmltYXRpb24oJ3JpZ2h0JywgMSlcblx0XHRcdFx0XHRcdFx0XHRkZExvZ29DYXQub25jZShkcmFnb25Cb25lcy5FdmVudE9iamVjdC5DT01QTEVURSwgZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLmxvZ29DYXQuZ2V0Q29tcG9uZW50KGRyYWdvbkJvbmVzLkFybWF0dXJlRGlzcGxheSkucGxheUFuaW1hdGlvbignbm9ybWFsJywgMClcblx0XHRcdFx0XHRcdFx0XHR9LCB0aGlzKVxuXG5cdFx0XHRcdFx0XHRcdFx0cGxheUF1ZGlvQnlVcmwodGhpcy5yaWdodEF1ZGlvLCAoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXNvbHZlKClcblx0XHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRvbkRvbmU6IHtcblx0XHRcdFx0XHRcdFx0dGFyZ2V0OiAnI1F1ZXN0aW9uc0FycmF5Lm5leHQnLFxuXHRcdFx0XHRcdFx0XHRhY3Rpb25zOiByYWlzZSgnQ0hFQ0snKVxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdG9uRXJyb3I6IHtcblx0XHRcdFx0XHRcdFx0dGFyZ2V0OiAnI1F1ZXN0aW9uc0FycmF5Lm5leHQnLFxuXHRcdFx0XHRcdFx0XHRhY3Rpb25zOiByYWlzZSgnQ0hFQ0snKVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSxcblx0XHRcdFx0d3Jvbmc6e1xuXHRcdFx0XHRcdGludm9rZToge1xuXHRcdFx0XHRcdFx0c3JjOiAoY29udGV4dCwgZXZlbnQpID0+IHtcblx0XHRcdFx0XHRcdFx0dGhpcy5fbGFzdEZpbmdlclBvc2l0aW9uLnBvcyA9IG51bGw7XG5cdFx0XHRcdFx0XHRcdHRoaXMuX2xhc3RGaW5nZXJQb3NpdGlvbi5kaXJ0eSA9IGZhbHNlO1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdhbnN3ZXIgd3JvbmcnLCBjb250ZXh0LnF1ZXN0aW9uSW5kZXgsIGNvbnRleHQucXVlc3Rpb25QbGF5VGltZXMgLCBjb250ZXh0Lm1heFF1ZXN0aW9uVHJ5VGltZXMpO1xuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IGRkTG9nb0NhdCA9IHRoaXMubG9nb0NhdC5nZXRDb21wb25lbnQoZHJhZ29uQm9uZXMuQXJtYXR1cmVEaXNwbGF5KVxuXHRcdFx0XHRcdFx0XHRcdGRkTG9nb0NhdC5wbGF5QW5pbWF0aW9uKCd3cm9uZycsIDEpXG5cdFx0XHRcdFx0XHRcdFx0ZGRMb2dvQ2F0Lm9uY2UoZHJhZ29uQm9uZXMuRXZlbnRPYmplY3QuQ09NUExFVEUsIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5sb2dvQ2F0LmdldENvbXBvbmVudChkcmFnb25Cb25lcy5Bcm1hdHVyZURpc3BsYXkpLnBsYXlBbmltYXRpb24oJ25vcm1hbCcsIDApXG5cdFx0XHRcdFx0XHRcdFx0fSwgdGhpcyk7XG5cdFx0XHRcdFx0XHRcdFx0bGV0IHdyb25nRWZmZWN0ID0gdGhpcy53cm9uZ0F1ZGlvO1xuXHRcdFx0XHRcdFx0XHRcdC8vIOesrOS4gOWSjOesrOS6jOmimOeahOaPkOekuumfs1xuXHRcdFx0XHRcdFx0XHRcdGlmIChbMCwgMV0uaW5jbHVkZXMoY29udGV4dC5xdWVzdGlvbkluZGV4KSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0d3JvbmdFZmZlY3QgPSB0aGlzLmRhdGFbYHdyb25nX2F1ZGlvJHtjb250ZXh0LnF1ZXN0aW9uUGxheVRpbWVzfWBdXG5cdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdC8vIOmdnuesrOS4gOWSjOesrOS6jOmimO+8jOW5tuS4lOWBmuesrOS6jOmBjeeahOaPkOekuumfs1xuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKGNvbnRleHQucXVlc3Rpb25QbGF5VGltZXMgPT0gMikge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR3cm9uZ0VmZmVjdCA9IHRoaXMuZGF0YVtgd3JvbmdfYXVkaW8ke2NvbnRleHQucXVlc3Rpb25QbGF5VGltZXN9YF1cblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHR9XG5cblxuXHRcdFx0XHRcdFx0XHRcdGlmIChjb250ZXh0LnF1ZXN0aW9uUGxheVRpbWVzID49IGNvbnRleHQubWF4UXVlc3Rpb25UcnlUaW1lcykge1xuXHRcdFx0XHRcdFx0XHRcdFx0Y29uc3QgYW4gPSBjb250ZXh0LnF1ZXN0aW9uc1tjb250ZXh0LnF1ZXN0aW9uSW5kZXhdLm5vZGU7XG5cdFx0XHRcdFx0XHRcdFx0XHRhbi5hY3RpdmUgPSB0cnVlO1xuXG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAoYW4uaXNTcGluZSkge1xuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGNvbnN0IHNrZWxldG9uID0gYW4uZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0c2tlbGV0b24uc2V0VG9TZXR1cFBvc2UoKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0c2tlbGV0b24uc2V0QW5pbWF0aW9uKDAsICdub3JtYWwnLCB0cnVlKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0fSwgMSk7XG5cdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0Y29uc3QgZHJhZ29uRGlzcGxheSA9IGFuLmdldENvbXBvbmVudChkcmFnb25Cb25lcy5Bcm1hdHVyZURpc3BsYXkpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRkcmFnb25EaXNwbGF5LnBsYXlBbmltYXRpb24oJ25vcm1hbCcsIDApO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnc2hvdyBhbmltYXRpb24nLCBhbi5hY3RpdmUpO1xuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRwbGF5QXVkaW9CeVVybCh3cm9uZ0VmZmVjdCwgKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKGNvbnRleHQucXVlc3Rpb25QbGF5VGltZXMgPj0gY29udGV4dC5tYXhRdWVzdGlvblRyeVRpbWVzKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIGNvbnN0IGFuID0gY29udGV4dC5xdWVzdGlvbnNbY29udGV4dC5xdWVzdGlvbkluZGV4XS5ub2RlO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBhbi5hY3RpdmUgPSB0cnVlO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBjb25zdCBkcmFnb25EaXNwbGF5ID0gYW4uZ2V0Q29tcG9uZW50KGRyYWdvbkJvbmVzLkFybWF0dXJlRGlzcGxheSk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIGRyYWdvbkRpc3BsYXkucGxheUFuaW1hdGlvbignbm9ybWFsJywgMCk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKCdzaG93IGFuaW1hdGlvbicsIGFuLmFjdGl2ZSk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHJlamVjdCgpXG5cdFx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRyZXNvbHZlKClcblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRvbkRvbmU6IHtcblx0XHRcdFx0XHRcdFx0dGFyZ2V0OiAnaGludCcsXG5cdFx0XHRcdFx0XHRcdC8vIGFjdGlvbnM6IHJhaXNlKCdDSEVDSycpXG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0b25FcnJvcjoge1xuXHRcdFx0XHRcdFx0XHR0YXJnZXQ6ICcjUXVlc3Rpb25zQXJyYXkubmV4dCcsXG5cdFx0XHRcdFx0XHRcdGFjdGlvbnM6IHJhaXNlKCdDSEVDSycpXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LFxuXHRcdFx0fVxuXHRcdH1cblx0XHRjb25zdCBRdWVzdGlvbnNBcnJheVN0YXR1cyA9IHtcblx0XHRcdGlkOiAnUXVlc3Rpb25zQXJyYXknLFxuXHRcdFx0aW5pdGlhbDogJ3BsYXknLFxuXHRcdFx0c3RhdGVzOiB7XG5cdFx0XHRcdHBsYXk6IHtcblx0XHRcdFx0XHQuLi5RdWVzdGlvblN0YXRlXG5cdFx0XHRcdH0sXG5cdFx0XHRcdG5leHQ6IHtcblx0XHRcdFx0XHRvbjoge1xuXHRcdFx0XHRcdFx0Q0hFQ0s6IFtcblx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdHRhcmdldDogJyNnYW1lLmVuZCcsXG5cdFx0XHRcdFx0XHRcdFx0Y29uZDogKGN0eCwgZXZ0KSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0XHRjdHgucXVlc3Rpb25JbmRleCArPSAxO1xuXHRcdFx0XHRcdFx0XHRcdFx0Y3R4LnF1ZXN0aW9uUGxheVRpbWVzID0gMFxuXHRcdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJyNnYW1lLmVuZCcsICBjdHgucXVlc3Rpb25JbmRleCA+PSBjdHgucXVlc3Rpb25zQ291bnQgKVxuXHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuIGN0eC5xdWVzdGlvbkluZGV4ID49IGN0eC5xdWVzdGlvbnNDb3VudFxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0e3RhcmdldDogJ3BsYXknfVxuXHRcdFx0XHRcdFx0XVxuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdFxuXHRcdGNvbnN0IHN0YXRlID0ge1xuXHRcdFx0aWQ6ICdnYW1lJyxcblx0XHRcdGluaXRpYWw6ICdiZWdpbicsXG5cdFx0XHRjb250ZXh0OiB7XG5cdFx0XHRcdHF1ZXN0aW9uSW5kZXg6IDAsXG5cdFx0XHRcdHF1ZXN0aW9uUGxheVRpbWVzOiAwLFxuXHRcdFx0XHRtYXhRdWVzdGlvblRyeVRpbWVzOiAyLFxuXHRcdFx0XHRxdWVzdGlvbnNDb3VudDogdGhpcy5fZmlndXJlUG9pbnRSZWN0QXJyYXkubGVuZ3RoLFxuXHRcdFx0XHRxdWVzdGlvbnM6IHRoaXMuX2ZpZ3VyZVBvaW50UmVjdEFycmF5LFxuXHRcdFx0fSxcblx0XHRcdHN0YXRlczoge1xuXHRcdFx0XHRiZWdpbjoge1xuXHRcdFx0XHRcdGludm9rZToge1xuXHRcdFx0XHRcdFx0c3JjOiAoY3R4KSA9PiB7XG5cdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdnYW1lIGJlZ2luIDEnKTtcblx0XHRcdFx0XHRcdFx0aWYod2luZG93LmNvdXJzZXdhcmUgJiYgd2luZG93LmNvdXJzZXdhcmUub3Blbk9zbW9GaW5nZXJSZWFkKSB7XG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5pc09wZW5lZE9zbW9GaW5nZXJSZWFkID0gdHJ1ZTtcblx0XHRcdFx0XHRcdFx0XHR3aW5kb3cuY291cnNld2FyZS5vcGVuT3Ntb0ZpbmdlclJlYWQoe1xuXHRcdFx0XHRcdFx0XHRcdFx0XCJwYWdlX2lkXCI6IDI3LFxuXHRcdFx0XHRcdFx0XHRcdFx0XCJib29rX2lkXCI6IFwib3B3MVwiXG5cdFx0XHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR2YXIgZHJhZ29uRGlzcGxheSA9IHRoaXMubG9nb0NhdC5nZXRDb21wb25lbnQoZHJhZ29uQm9uZXMuQXJtYXR1cmVEaXNwbGF5KTtcblx0XHRcdFx0XHRcdFx0Y29uc3Qgc3RhdGUgPSBkcmFnb25EaXNwbGF5LnBsYXlBbmltYXRpb24oJ2JlZ2luJywgMCk7XG5cdFx0XHRcdFx0XHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSxyZWplY3QpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRwbGF5QXVkaW9CeVVybCh0aGlzLmRhdGEuYmVnaW5fYXVkaW8sICgpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdnYW1lIGJlZ2luIGF1ZGlvIGZpbmlzaCcpO1xuXHRcdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZSgpXG5cdFx0XHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0b25Eb25lOiAgJ2d1aWRlJyxcblx0XHRcdFx0XHRcdG9uRXJyb3I6ICdndWlkZSdcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0sXG5cdFx0XHRcdFxuXHRcdFx0XHRndWlkZTp7XG5cdFx0XHRcdFx0aW52b2tlOiB7XG5cdFx0XHRcdFx0XHRzcmM6IChjdHgpID0+IHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLHJlamVjdCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdHBsYXlBdWRpb0J5VXJsKHRoaXMuZGF0YS5ndWlkZV9hdWRpbywgKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ2dhbWUgZ3VpZGUgYXVkaW8gZmluaXNoJyk7XG5cdFx0XHRcdFx0XHRcdFx0XHRyZWplY3QoKVxuXHRcdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdG9uRG9uZTogICdwbGF5aW5nJyxcblx0XHRcdFx0XHRcdG9uRXJyb3I6ICdwbGF5aW5nJ1xuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XG5cdFx0XHRcdH0sXG5cdFx0XHRcdHBsYXlpbmc6IHtcblx0XHRcdFx0XHRlbnRyeTogKGN0eCkgPT4ge1xuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ2VudHJ5IHBsYXkgc3RhZ2UnKTtcblx0XHRcdFx0XHRcdHZhciBkcmFnb25EaXNwbGF5ID0gdGhpcy5sb2dvQ2F0LmdldENvbXBvbmVudChkcmFnb25Cb25lcy5Bcm1hdHVyZURpc3BsYXkpO1xuXHRcdFx0XHRcdFx0Y29uc3Qgc3RhdGUgPSBkcmFnb25EaXNwbGF5LnBsYXlBbmltYXRpb24oJ25vcm1hbCcsIDApO1xuXHRcdFx0XHRcdFx0Y2MuYXNzZXRNYW5hZ2VyLmxvYWRSZW1vdGUodGhpcy5kYXRhLnBsYXlpbmdfYXVkaW8sIChlcnIsIGF1ZGlvQ2xpcCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRjYy5hdWRpb0VuZ2luZS5wbGF5TXVzaWMoYXVkaW9DbGlwLCB0cnVlLCAwLjgpO1xuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHRjdHgucXVlc3Rpb25zLmZvckVhY2goKGJsb2NrKSA9PiB7XG5cdFx0XHRcdFx0XHRcdGJsb2NrLm5vZGUuYWN0aXZlID0gZmFsc2U7XG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdGV4aXQ6ICgpID0+IHtcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdleGl0IHBsYXkgc3RhZ2UnKTtcblx0XHRcdFx0XHRcdGNjLmF1ZGlvRW5naW5lLnN0b3BNdXNpYygpO1xuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0b246IHtcblx0XHRcdFx0XHRcdE5FWFQ6ICdlbmQnXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHQvLyAuLi5RdWVzdGlvbnNTdGF0ZXNcblx0XHRcdFx0XHQuLi5RdWVzdGlvbnNBcnJheVN0YXR1c1xuXHRcdFx0XHR9LFxuXHRcdFx0XHRlbmQ6IHtcblx0XHRcdFx0XHRcdGVudHJ5OiAoY3R4LCBldmVudCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnZ2FtZSBlbmQnKTtcblx0XHRcdFx0XHRcdFx0dmFyIGRyYWdvbkRpc3BsYXkgPSB0aGlzLmxvZ29DYXQuZ2V0Q29tcG9uZW50KGRyYWdvbkJvbmVzLkFybWF0dXJlRGlzcGxheSk7XG5cdFx0XHRcdFx0XHRcdGNvbnN0IHN0YXRlID0gZHJhZ29uRGlzcGxheS5wbGF5QW5pbWF0aW9uKCdmaW5pc2gnLCAwKTtcblx0XHRcdFx0XHRcdFx0aWYod2luZG93LmNvdXJzZXdhcmUgJiYgd2luZG93LmNvdXJzZXdhcmUuY2xvc2VPc21vRmluZ2VyUmVhZCkge1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMuaXNPcGVuZWRPc21vRmluZ2VyUmVhZCA9IGZhbHNlO1xuXHRcdFx0XHRcdFx0XHRcdHdpbmRvdy5jb3Vyc2V3YXJlLmNsb3NlT3Ntb0ZpbmdlclJlYWQoKVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdHBsYXlBdWRpb0J5VXJsKHRoaXMuZGF0YS5lbmRfYXVkaW8sICgpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnZ2FtZSBmaW5pc2gnKTtcblx0XHRcdFx0XHRcdFx0XHRvbkhvbWV3b3JrRmluaXNoKCk7XG5cdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHRcdC8vIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSxyZWplY3QpID0+IHtcblx0XHRcdFx0XHRcdFx0Ly8gXHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHRcdFx0Ly8gXHRcdGNvbnNvbGUubG9nKCdoaW50IGZpbmlzaCcpO1xuXHRcdFx0XHRcdFx0XHQvLyBcdFx0cmVzb2x2ZSgpXG5cdFx0XHRcdFx0XHRcdC8vIFx0fSwgMjAwMClcblx0XHRcdFx0XHRcdFx0Ly8gfSlcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcblx0XHRcdFx0fSxcblx0XHRcdH1cblx0XHR9O1xuXHRcdGNvbnN0IGFmdGVyID0ge307XG5cdFx0Zm9yKGxldCBpID0gMCA7aSAgPCB0aGlzLl9oaW50c05vZGVMaXN0Lmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRjb25zdCB0ID0gdGhpcy5faGludHNOb2RlTGlzdFtpXS5ub2RlO1xuXHRcdFx0Y29uc3QgayA9IHRoaXMuX2hpbnRzTm9kZUxpc3RbaV0uYWZ0ZXI7XG5cdFx0XHRhZnRlcltrXT0ge1xuXHRcdFx0XHRhY3Rpb25zOiAoKSA9PiB7XG5cblx0XHRcdFx0XHRpZiAodC5pc1NwaW5lKSB7XG5cblx0XHRcdFx0XHRcdGNvbnN0IHNrZWxldG9uID0gdC5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pO1xuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRza2VsZXRvbi5zZXRUb1NldHVwUG9zZSgpO1xuXHRcdFx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdHNrZWxldG9uLnNldEFuaW1hdGlvbigwLCAnZW5sYXJnZScsIGZhbHNlKTtcblx0XHRcdFx0XHRcdH0sIDEpO1xuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHQvLyBza2VsZXRvbi5hbmltYXRpb24gPSBza2VsZXRvbi5hbmltYXRpb25OYW1lc1swXTtcblxuXHRcdFx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0XHRcdGNvbnN0IGRyYWdvbkRpc3BsYXkgPSB0LmdldENvbXBvbmVudChkcmFnb25Cb25lcy5Bcm1hdHVyZURpc3BsYXkpO1xuXHRcdFx0XHRcdFx0ZHJhZ29uRGlzcGxheS5wbGF5QW5pbWF0aW9uKCdlbmxhcmdlJywgMSk7XG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhkcmFnb25EaXNwbGF5Ll9hcm1hdHVyZUtleSwgJ2VubGFyZ2UnKVxuXHRcdFx0XHRcdFx0ZHJhZ29uRGlzcGxheS5hZGRFdmVudExpc3RlbmVyKGRyYWdvbkJvbmVzLkV2ZW50T2JqZWN0LkNPTVBMRVRFLCAoZXZlbnQpID0+IHtcblx0XHRcdFx0XHRcdFx0Ly8gVE9ETyDov5nph4zlhpnop6blj5Hkuovku7Zcblx0XHRcdFx0XHRcdFx0Ly8gZXZlbnQubmFtZeS4uuS6i+S7tuWQjeensFxuXHRcdFx0XHRcdFx0XHQvLyBldmVudC5hcm1hdHVyZS5hbmltYXRpb24ucGxheSgnbm9ybWFsJywgMCk7XG5cdFx0XHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKGV2ZW50LmFuaW1hdGlvblN0YXRlLm5hbWUsIGRyYWdvbkRpc3BsYXkuX2FybWF0dXJlS2V5LCAnZW5kJylcblx0XHRcdFx0XHRcdH0sIHRoaXMpO1xuXHRcdFx0XHRcdH1cblxuXG5cblx0XHRcdFx0XHQvLyBjb25zdCBkcmFnb25EaXNwbGF5ID0gdC5nZXRDb21wb25lbnQoZHJhZ29uQm9uZXMuQXJtYXR1cmVEaXNwbGF5KTtcblx0XHRcdFx0XHQvLyBkcmFnb25EaXNwbGF5LnBsYXlBbmltYXRpb24oJ2VubGFyZ2UnLCAxKTtcblx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhkcmFnb25EaXNwbGF5Ll9hcm1hdHVyZUtleSwgJ2VubGFyZ2UnKVxuXHRcdFx0XHRcdC8vIGRyYWdvbkRpc3BsYXkuYWRkRXZlbnRMaXN0ZW5lcihkcmFnb25Cb25lcy5FdmVudE9iamVjdC5DT01QTEVURSwgKGV2ZW50KSA9PiB7XG5cdFx0XHRcdFx0Ly8gXHQvL1RPRE8g6L+Z6YeM5YaZ6Kem5Y+R5LqL5Lu2XG5cdFx0XHRcdFx0Ly8gXHQvL2V2ZW50Lm5hbWXkuLrkuovku7blkI3np7Bcblx0XHRcdFx0XHQvLyBcdGV2ZW50LmFybWF0dXJlLmFuaW1hdGlvbi5wbGF5KCdub3JtYWwnLCAwKTtcblx0XHRcdFx0XHQvLyBcdGNvbnNvbGUubG9nKGV2ZW50LmFuaW1hdGlvblN0YXRlLm5hbWUsIGRyYWdvbkRpc3BsYXkuX2FybWF0dXJlS2V5LCAnZW5kJylcblx0XHRcdFx0XHQvLyB9LCB0aGlzKTtcblx0XHRcdFx0fSBcblx0XHRcdH1cblx0XHR9XG5cdFx0aWYgKHRoaXMuZGF0YS5iZWdpbl9zZXBfdGltZSkge1xuXHRcdFx0Y29uc3QgdCA9ICt0aGlzLmRhdGEuYmVnaW5fc2VwX3RpbWUgKiAxMDAwO1xuXHRcdFx0YWZ0ZXJbdF0gPSB7XG5cdFx0XHRcdGFjdGlvbnM6ICgpID0+IHtcblx0XHRcdFx0XHRjb25zb2xlLmxvZygnZ2FtZSBiZWdpbiAyJyk7XG5cblx0XHRcdFx0XHRmb3IobGV0IGkgPSAwIDtpICA8IHRoaXMuX2FsbEFuaW1hdGlvbk5vZGVzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0XHRjb25zdCB0ID0gdGhpcy5fYWxsQW5pbWF0aW9uTm9kZXNbaV07XG5cdFx0XHRcdFx0XHRpZiAodC5pc1NwaW5lKSB7XG5cblx0XHRcdFx0XHRcdFx0Y29uc3Qgc2tlbGV0b24gPSB0LmdldENvbXBvbmVudChzcC5Ta2VsZXRvbik7XG5cdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdza2VsZXRvbjogJywgc2tlbGV0b24pO1xuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0c2tlbGV0b24uc2V0VG9TZXR1cFBvc2UoKTtcblx0XHRcdFx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0c2tlbGV0b24uc2V0QW5pbWF0aW9uKDAsICdub3JtYWwnLCB0cnVlKTtcblx0XHRcdFx0XHRcdFx0fSwgMSk7XG5cdFx0XHRcdFx0XHRcdFxuXG5cdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdza2VsZXRvbiAyMjogJywgc2tlbGV0b24pO1xuXG5cdFx0XHRcdFx0XHRcdC8vIHNrZWxldG9uLmFuaW1hdGlvbiA9IHNrZWxldG9uLmFuaW1hdGlvbk5hbWVzWzBdO1xuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblxuXHRcdFx0XHRcdFx0XHRjb25zdCBkcmFnb25EaXNwbGF5ID0gdC5nZXRDb21wb25lbnQoZHJhZ29uQm9uZXMuQXJtYXR1cmVEaXNwbGF5KTtcblx0XHRcdFx0XHRcdFx0ZHJhZ29uRGlzcGxheS5wbGF5QW5pbWF0aW9uKCdub3JtYWwnLCAwKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdFx0c3RhdGUuc3RhdGVzLmJlZ2luLmFmdGVyID0gYWZ0ZXI7XG5cblxuXG5cdFx0Y29uc3QgZ2FtZU1hY2hpbmUgPSBjcmVhdGVNYWNoaW5lKHN0YXRlKTtcblx0XHR3aW5kb3cuZ2FtZU1hY2hpbmUgPSBnYW1lTWFjaGluZTtcblx0XHR0aGlzLmdhbWVNYWNoaW5lU2VydmljZSA9IGludGVycHJldChnYW1lTWFjaGluZSkub25UcmFuc2l0aW9uKChzdGF0ZSkgPT4ge1xuXHRcdC8vIGNvbnNvbGUubG9nKDEsIHN0YXRlLnZhbHVlLCBzdGF0ZS5jb250ZXh0KTtcblx0XHR9KTtcblx0XHR0aGlzLmdhbWVNYWNoaW5lU2VydmljZS5zdGFydCgpO1xuXHRcdGlmICh3aW5kb3cuZ2FtZU1hY2hpbmVTZXJ2aWNlKSB7XG5cdFx0XHR3aW5kb3cuZ2FtZU1hY2hpbmVTZXJ2aWNlID0gZ2FtZU1hY2hpbmVTZXJ2aWNlO1xuXHRcdH1cblxuXG5cdH0sXG5cblx0XG5cblxuXG5cdC8vIOeUn+WRveWRqOacnyBzdGFydFxuXHRzdGFydCgpIHtcblx0XHRsZXQgZ2V0RGF0YSA9IHRoaXMuZ2V0RGF0YS5iaW5kKHRoaXMpO1xuXHRcdGlmICh3aW5kb3cgJiYgd2luZG93LmNvdXJzZXdhcmUpIHtcblx0XHRcdGdldERhdGEgPSB3aW5kb3cuY291cnNld2FyZS5nZXREYXRhO1xuXHRcdH1cblxuXHRcdGdldERhdGEoKGRhdGEpID0+IHtcblx0XHRcdC8vIGNvbnNvbGUubG9nKCdkYXRhOicsIGRhdGEpO1xuXHRcdFx0dGhpcy5kYXRhID0gZGF0YSB8fCB0aGlzLmdldERlZmF1bHREYXRhKCk7XG5cdFx0XHR0aGlzLmRhdGEgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZGF0YSkpXG5cdFx0XHRcblx0XHRcdHRoaXMucHJlbG9hZEl0ZW0oKVxuXHRcdH0pO1xuXHRcdHdpbmRvdy5haXIgPSB3aW5kb3cuYWlyIHx8IHt9XG5cdFx0aWYgKHdpbmRvdy5haXIpIHtcblx0XHRcdHdpbmRvdy5haXIub3Ntb0ZpbmdlclJlYWRDYWxsYmFjayA9IChyZXN1bHQpID0+IHtcblx0XHRcdFx0aWYgKCF0aGlzLmdhbWVNYWNoaW5lU2VydmljZSkge1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXHRcdFx0XHQvLyBjb25zdCBzdCA9IHRoaXMuZ2FtZU1hY2hpbmVTZXJ2aWNlLnN0YXRlLnZhbHVlLmNvbnN0cnVjdG9yLm5hbWUgPT0gJ09iamVjdCcgXG5cdFx0XHRcdC8vICYmIHRoaXMuZ2FtZU1hY2hpbmVTZXJ2aWNlLnN0YXRlLnZhbHVlWydwbGF5aW5nJ11cblx0XHRcdFx0Ly8gJiYgdGhpcy5nYW1lTWFjaGluZVNlcnZpY2Uuc3RhdGUudmFsdWVbJ3BsYXlpbmcnXS5jb25zdHJ1Y3Rvci5uYW1lID09ICdPYmplY3QnXG5cdFx0XHRcdC8vICYmIHRoaXMuZ2FtZU1hY2hpbmVTZXJ2aWNlLnN0YXRlLnZhbHVlWydwbGF5aW5nJ11bJ3BsYXknXVxuXHRcdFx0XHQvLyAmJiB0aGlzLmdhbWVNYWNoaW5lU2VydmljZS5zdGF0ZS52YWx1ZVsncGxheWluZyddWydwbGF5J10gPT0gJ2Fuc3dlcidcblx0XHRcdFx0Ly8gaWYgKHN0KSB7XG5cdFx0XHRcdC8vIH1cblx0XHRcdFx0Y29uc3QgcmVzdWx0T2JqID0gSlNPTi5wYXJzZShyZXN1bHQpO1xuXHRcdFx0XHRjb25zb2xlLmxvZygnW0dlbmlzZSBKU10gJysgSlNPTi5zdHJpbmdpZnkocmVzdWx0T2JqLmZpbmdlcl9wb3NfaW5fcGFnZSkpXG5cdFx0XHRcdGNvbnN0IHAgPSByZXN1bHRPYmouZmluZ2VyX3Bvc19pbl9wYWdlO1xuXHRcdFx0XHRpZiAocC54ID09IC0xIHx8IHAueSA9PSAtMSkge1xuXHRcdFx0XHRcdHRoaXMuX2xhc3RGaW5nZXJQb3NpdGlvbi5wb3MgPSBudWxsO1xuXHRcdFx0XHRcdHRoaXMuX2xhc3RGaW5nZXJQb3NpdGlvbi5kaXJ0eSA9IGZhbHNlO1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLl9sYXN0RmluZ2VyUG9zaXRpb24gPSB7XG5cdFx0XHRcdFx0cG9zOntcblx0XHRcdFx0XHRcdHg6IHAueCxcblx0XHRcdFx0XHRcdHk6IHAueVxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0ZGlydHk6IHRydWVcblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLmRlYnVnUG9pbnRlcihwLngsIHAueSlcblx0XHRcdH1cblx0XHR9XG5cdFx0dGhpcy5pc0RlYnVnID0gZmFsc2U7XG5cdFx0XG5cdH0sXG5cdGNoZWNrSW5SZWdpb24ocikge1xuXHRcdGlmICghdGhpcy5fbGFzdEZpbmdlclBvc2l0aW9uICYmICF0aGlzLl9sYXN0RmluZ2VyUG9zaXRpb24ucG9zKSB7XG5cdFx0XHRyZXR1cm4gbnVsbDtcblx0XHR9XG5cdFx0Y29uc3QgcCA9IHRoaXMuX2xhc3RGaW5nZXJQb3NpdGlvbiA/IHRoaXMuX2xhc3RGaW5nZXJQb3NpdGlvbi5wb3MgfHwge3g6MCwgeTowfSA6IHt4OjAsIHk6MH07XG5cblx0XHRjb25zb2xlLmxvZygnfnA6ICcsIHApO1xuXHRcdGNvbnNvbGUubG9nKCd+cjogJywgcik7XG5cblx0XHRjb25zdCB3ID0gcC54ID4gci54ICYmIHAueCA8IChyLnggKyByLndpZHRoKTtcblx0XHRjb25zdCBoID0gcC55ID4gci55ICYmIHAueSA8IChyLnkgKyByLmhlaWdodCk7XG5cdFx0cmV0dXJuIHcgJiYgaDtcblxuXHR9LFxuXG5cdGdldERhdGEoZnVuYykge1xuXHRcdGlmICh3aW5kb3cgJiYgd2luZG93LmNvdXJzZXdhcmUpIHtcblx0XHRcdHdpbmRvdy5jb3Vyc2V3YXJlLmdldERhdGEoZnVuYywgJ3NjZW5lJyk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Y29uc3QgbWlkZGxlTGF5ZXIgPSBjYy5maW5kKCdtaWRkbGVMYXllcicpO1xuXHRcdGlmIChtaWRkbGVMYXllcikge1xuXHRcdFx0Y29uc3QgbWlkZGxlTGF5ZXJDb21wb25lbnQgPSBtaWRkbGVMYXllci5nZXRDb21wb25lbnQoJ21pZGRsZUxheWVyJyk7XG5cdFx0XHRtaWRkbGVMYXllckNvbXBvbmVudC5nZXREYXRhKGZ1bmMpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGZ1bmModGhpcy5nZXREZWZhdWx0RGF0YSgpKTtcblx0fSxcblxuXHRnZXREZWZhdWx0RGF0YSgpIHtcblx0XHRyZXR1cm4ge1wiYmVnaW5fYXVkaW9cIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS85YmU0NmM5YWRiNTQwZWQ4YTYwNzYzZjFlNjU3Y2NiNy5tcDNcIixcImJlZ2luX3NlcF90aW1lXCI6NjYsXCJndWlkZV9hdWRpb1wiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzk1MjNjOGVkNDVmYWVlNjg2MzYzZGQxNTdiMGQ3NDI2Lm1wM1wiLFwicGxheWluZ19hdWRpb1wiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2Q2YTk1MzA1MmE2ZjgwNTQ5NzMwY2I0MzA3YzU1NzE5Lm1wM1wiLFwicmlnaHRfYXVkaW9cIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS80Mzc5MWZjNDE4ZTY2NmRmNWU5ZWMxYjdiZjkzNjQwOS5tcDNcIixcIndyb25nX2F1ZGlvXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vN2RkODVmMDI1YTEzMmMyZWVmOGRhZWUzOGQ5MDAyODcubXAzXCIsXCJ3cm9uZ19hdWRpbzFcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9hNzZhZmIwNmFmMDc5OWJmNTM4ZTM4ZjlmODBhMjI2MS5tcDNcIixcIndyb25nX2F1ZGlvMlwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2RhZWU4OGI2ZjJlYWRkNzhiNjA0MzZlZWRmZmNhZTA4Lm1wM1wiLFwiZW5kX2F1ZGlvXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vOWMxZTg3YjNjMTg0YjA2ZTE0ZTQ0YmIwNThiOTgwNGUubXAzXCIsXCJiZ0l0ZW1cIjp7XCJ1cmxcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8xNmI2ZGFjZDhlNmMxY2U2ZGExNmY1MDBhNjZiMzY2Yi5qcGdcIixcInJlY3RcIjp7XCJ4XCI6MzE5LjY4LFwieVwiOjAsXCJ3aWR0aFwiOjI1Ny42NCxcImhlaWdodFwiOjM0Mn19LFwiaG90Wm9uZUl0ZW1BcnJcIjpbe1wiaWRcIjpcIjE2NTA1NDQ4MDc4NzdcIixcImluZGV4XCI6MCxcIml0ZW1UeXBlXCI6XCJwaWNcIixcImZvbnRTY2FsZVwiOjAuNzAwNzgxMjUsXCJpbWdTY2FsZVwiOjEsXCJpbWdTaXplV1wiOjAsXCJpbWdTaXplSFwiOjAsXCJtYXBTY2FsZVwiOjAuNzAwNzgxMjUsXCJkcmFnRG90XCI6e1wieFwiOjQ0OC41LFwieVwiOjE3Ni42NTIwNzg3NzQ2MTcwMn0sXCJnSWR4XCI6XCIxXCIsXCJza2VKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzY2YzdjMDg0N2MzM2Y3Zjk1Y2IwMDM1ZmUxNGM0NDA1Lmpzb25cIixcIm5hbWVcIjpcIm1vbmtleV9za2UuanNvblwifSxcInRleEpzb25EYXRhXCI6e1widXJsXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vOThhODI3MmNkMmQ5NzA0N2IwOTBmZjEwZTk0OGI5NzguanNvblwiLFwibmFtZVwiOlwibW9ua2V5X3RleC5qc29uXCJ9LFwidGV4UG5nRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2MzNWNlZDQwOGFkNjhhNTJjNGVjNTM3NTM3M2QzNjI3LnBuZ1wiLFwibmFtZVwiOlwibW9ua2V5X3RleC5wbmdcIn0sXCJyZWN0XCI6e1wieFwiOjEyOC44MyxcInlcIjoxNzEsXCJ3aWR0aFwiOjAsXCJoZWlnaHRcIjowfX0se1wiaWRcIjpcIjE2NTA1NDYwNzkwMDBcIixcImluZGV4XCI6MSxcImF1ZGlvX3VybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2Y5ZWRjODRhNjY5Njg4YzVhYmRkZDU1ZTJhYWIwMTVkLm1wM1wiLFwiaXRlbVR5cGVcIjpcInJlY3RcIixcImZvbnRTY2FsZVwiOjAuNzAwNzgxMjUsXCJpbWdTY2FsZVwiOjEsXCJpbWdTaXplV1wiOjAsXCJpbWdTaXplSFwiOjAsXCJtYXBTY2FsZVwiOjAuNzAwNzgxMjUsXCJkcmFnRG90XCI6e1wieFwiOjQ0OC41LFwieVwiOjE3MC41NDk4NDU4Mzc2MTU2Nn0sXCJnSWR4XCI6XCIwXCIsXCJsYWJlbFRleHRcIjpcIjIxLjNcIixcInBvc1hcIjo2OTIuNDEyNzUwMDE5MzU5OCxcInBvc1lcIjoyMTguMTQ2OTU5NTkxODU1NTYsXCJza2VKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2UzYzY3YTI1ZGQzYmIzNGZlMTEzZTEyNmU2ZTFjYzgxLmpzb25cIixcIm5hbWVcIjpcIm94X3NrZS5qc29uXCJ9LFwidGV4SnNvbkRhdGFcIjp7XCJ1cmxcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS84MWQ0ODdiZjMxZDNhNGQwZjI1ZjQ0YzE4NGJhOTIzMy5qc29uXCIsXCJuYW1lXCI6XCJveF90ZXguanNvblwifSxcInRleFBuZ0RhdGFcIjp7XCJ1cmxcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9lMTk5MzkyYjUyYTczNWY2ZTM3YTY4MTVlYzNiYjEwZS5wbmdcIixcIm5hbWVcIjpcIm94X3RleC5wbmdcIn0sXCJyZWN0XCI6e1wieFwiOjE1OS4zNCxcInlcIjoxMzguNjYsXCJ3aWR0aFwiOjM4LjgzLFwiaGVpZ2h0XCI6MzguODN9fSx7XCJpZFwiOlwiMTY1MDU0NjIzMjE4OVwiLFwiaW5kZXhcIjoyLFwiaXRlbVR5cGVcIjpcInJlY3RcIixcImZvbnRTY2FsZVwiOjAuNzAwNzgxMjUsXCJpbWdTY2FsZVwiOjEsXCJpbWdTaXplV1wiOjAsXCJpbWdTaXplSFwiOjAsXCJtYXBTY2FsZVwiOjAuNzAwNzgxMjUsXCJkcmFnRG90XCI6e1wieFwiOjQ0OC41LFwieVwiOjE3MC41NDk4NDU4Mzc2MTU2Nn0sXCJnSWR4XCI6XCIxXCIsXCJza2VKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzBhM2VhOTNjNjJmZjQwODc4NTllZDU4NzAyMGM1M2I1Lmpzb25cIixcIm5hbWVcIjpcImNhcl9za2UuanNvblwifSxcInRleEpzb25EYXRhXCI6e1widXJsXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vNjAwMGU0ZmJiYjk1ZjU0NWFmYTU0NTZjNjRkOGM3ZDEuanNvblwiLFwibmFtZVwiOlwiY2FyX3RleC5qc29uXCJ9LFwidGV4UG5nRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzc1ZTk5NzJjMTVkMmE2N2RlZWRmNjBkNDQ4ZmQ0ZTY5LnBuZ1wiLFwibmFtZVwiOlwiY2FyX3RleC5wbmdcIn0sXCJyZWN0XCI6e1wieFwiOjM2LjQsXCJ5XCI6NzguNTYsXCJ3aWR0aFwiOjE4NC44NyxcImhlaWdodFwiOjE4NC44N319LHtcImlkXCI6XCIxNjUwNTQ2MzIxMTI3XCIsXCJpbmRleFwiOjMsXCJpdGVtVHlwZVwiOlwicmVjdFwiLFwiZm9udFNjYWxlXCI6MC43MDA3ODEyNSxcImltZ1NjYWxlXCI6MSxcImltZ1NpemVXXCI6MCxcImltZ1NpemVIXCI6MCxcIm1hcFNjYWxlXCI6MC43MDA3ODEyNSxcImRyYWdEb3RcIjp7XCJ4XCI6NDQ4LjUsXCJ5XCI6MTcwLjU0OTg0NTgzNzYxNTY2fSxcImdJZHhcIjpcIjFcIixcInNrZUpzb25EYXRhXCI6e1widXJsXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vZDRjMWUxYWJjZjNkOGY1NDE1NzQ3ZmQyNTk5YjhhOGMuanNvblwiLFwibmFtZVwiOlwiQ2hhaXJfc2tlLmpzb25cIn0sXCJ0ZXhKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzFkNzI1NGViN2ZhMzAwOGU4MTc4MzQ3YmI5NDRjZGNiLmpzb25cIixcIm5hbWVcIjpcIkNoYWlyX3RleC5qc29uXCJ9LFwidGV4UG5nRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzQ4ZTg1ZThmZjM4NGVlZDcyZGZlODY1ZmM5ODFlMThjLnBuZ1wiLFwibmFtZVwiOlwiQ2hhaXJfdGV4LnBuZ1wifSxcInJlY3RcIjp7XCJ4XCI6MzYuNCxcInlcIjo3OC41NixcIndpZHRoXCI6MTg0Ljg3LFwiaGVpZ2h0XCI6MTg0Ljg3fX0se1wiaWRcIjpcIjE2NTA1NDYzMzUyNDBcIixcImluZGV4XCI6NCxcImF1ZGlvX3VybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzYxODJkNDZiYWQwOWZjY2I4OTM0MjE3ZDMzNTU3MjA0Lm1wM1wiLFwiaXRlbVR5cGVcIjpcInJlY3RcIixcImZvbnRTY2FsZVwiOjAuNzAwNzgxMjUsXCJpbWdTY2FsZVwiOjEsXCJpbWdTaXplV1wiOjAsXCJpbWdTaXplSFwiOjAsXCJtYXBTY2FsZVwiOjAuNzAwNzgxMjUsXCJkcmFnRG90XCI6e1wieFwiOjQ0OC41LFwieVwiOjE3MC41NDk4NDU4Mzc2MTU2Nn0sXCJnSWR4XCI6XCIwXCIsXCJsYWJlbFRleHRcIjpcIjUzXCIsXCJwb3NYXCI6NDUyLjUsXCJwb3NZXCI6MTI5LFwic2tlSnNvbkRhdGFcIjp7XCJ1cmxcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9iNDYyZDgwYzIxYWE3NTk5NWRkOTlmMGY0M2NjZjFlNi5qc29uXCIsXCJuYW1lXCI6XCJxdWlsdF9za2UuanNvblwifSxcInRleEpzb25EYXRhXCI6e1widXJsXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vODY2YzllMjk4Nzg3MDk0N2ZjNjNiY2UxMDhlZjE1N2EuanNvblwiLFwibmFtZVwiOlwicXVpbHRfdGV4Lmpzb25cIn0sXCJ0ZXhQbmdEYXRhXCI6e1widXJsXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vZDk1MmMzN2Y0MGMzY2YwN2UwMjRlZGZkNDQxNjQyM2UucG5nXCIsXCJuYW1lXCI6XCJxdWlsdF90ZXgucG5nXCJ9LFwicmVjdFwiOntcInhcIjo3MS45OSxcInlcIjoxMDAuNzUsXCJ3aWR0aFwiOjUwLjgzLFwiaGVpZ2h0XCI6MzYuOTd9fSx7XCJpZFwiOlwiMTY1MDU0NjY0NDMzM1wiLFwiaW5kZXhcIjo1LFwiaXRlbVR5cGVcIjpcInJlY3RcIixcImZvbnRTY2FsZVwiOjAuNzAwNzgxMjUsXCJpbWdTY2FsZVwiOjEsXCJpbWdTaXplV1wiOjAsXCJpbWdTaXplSFwiOjAsXCJtYXBTY2FsZVwiOjAuNzAwNzgxMjUsXCJkcmFnRG90XCI6e1wieFwiOjQ0OC41LFwieVwiOjE3MC41NDk4NDU4Mzc2MTU2Nn0sXCJnSWR4XCI6XCIxXCIsXCJza2VKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzZiOGExYTdiMGZkMjM2ODZlYTYwNDY1Mjc5Y2Q0ZGEwLmpzb25cIixcIm5hbWVcIjpcInJvYm90X3NrZS5qc29uXCJ9LFwidGV4SnNvbkRhdGFcIjp7XCJ1cmxcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8zMWE3NGVkOTVmZTQ4YWRhYjAwNzAyNjc1ODExYzNhOC5qc29uXCIsXCJuYW1lXCI6XCJyb2JvdF90ZXguanNvblwifSxcInRleFBuZ0RhdGFcIjp7XCJ1cmxcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9lNTcwNTI1MzdkODkzNTZiMGE3OWQ4Y2I3Nzk4MDIxOS5wbmdcIixcIm5hbWVcIjpcInJvYm90X3RleC5wbmdcIn0sXCJyZWN0XCI6e1wieFwiOjM2LjQsXCJ5XCI6NzguNTYsXCJ3aWR0aFwiOjE4NC44NyxcImhlaWdodFwiOjE4NC44N319LHtcImlkXCI6XCIxNjUwNTQ2NjU4Njk3XCIsXCJpbmRleFwiOjYsXCJpdGVtVHlwZVwiOlwicmVjdFwiLFwiZm9udFNjYWxlXCI6MC43MDA3ODEyNSxcImltZ1NjYWxlXCI6MSxcImltZ1NpemVXXCI6MCxcImltZ1NpemVIXCI6MCxcIm1hcFNjYWxlXCI6MC43MDA3ODEyNSxcImRyYWdEb3RcIjp7XCJ4XCI6NDQ4LjUsXCJ5XCI6MTcwLjU0OTg0NTgzNzYxNTY2fSxcImdJZHhcIjpcIjFcIixcInNrZUpzb25EYXRhXCI6e1widXJsXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vYmYzNjE2MDYwNDYwNDM5ZWViM2ZkNTIyNzM3MGUxNWEuanNvblwiLFwibmFtZVwiOlwicGFuZGFfc2tlLmpzb25cIn0sXCJ0ZXhKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzJkYWZlYjI1Yzk3M2M5MTAwMzVmZjdlZDFhNmE2MzM0Lmpzb25cIixcIm5hbWVcIjpcInBhbmRhX3RleC5qc29uXCJ9LFwidGV4UG5nRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzc1ZDkwYjA1MzQ1ZmE0NzAyODVhYzQ4OGNiMjA1Y2ZkLnBuZ1wiLFwibmFtZVwiOlwicGFuZGFfdGV4LnBuZ1wifSxcInJlY3RcIjp7XCJ4XCI6MzYuNCxcInlcIjo3OC41NixcIndpZHRoXCI6MTg0Ljg3LFwiaGVpZ2h0XCI6MTg0Ljg3fX0se1wiaWRcIjpcIjE2NTA1NDY2NzI0NDhcIixcImluZGV4XCI6NyxcIml0ZW1UeXBlXCI6XCJyZWN0XCIsXCJmb250U2NhbGVcIjowLjcwMDc4MTI1LFwiaW1nU2NhbGVcIjoxLFwiaW1nU2l6ZVdcIjowLFwiaW1nU2l6ZUhcIjowLFwibWFwU2NhbGVcIjowLjcwMDc4MTI1LFwiZHJhZ0RvdFwiOntcInhcIjo0NDguNSxcInlcIjoxNzAuNTQ5ODQ1ODM3NjE1NjZ9LFwiZ0lkeFwiOlwiMVwiLFwic2tlSnNvbkRhdGFcIjp7XCJ1cmxcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS81ZmVmZjgxMWIwMTE3ZGQ4ZTY3OTczMDcyZTYwZDMxMC5qc29uXCIsXCJuYW1lXCI6XCJxdWVlbl8xX3NrZS5qc29uXCJ9LFwidGV4SnNvbkRhdGFcIjp7XCJ1cmxcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9iYjU4NTZiOTJiMDljNWZlN2ExZGEwMGJiNjgxMzRjYS5qc29uXCIsXCJuYW1lXCI6XCJxdWVlbl8xX3RleC5qc29uXCJ9LFwidGV4UG5nRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2Y0ZTVhMTM4YjA4NmVmM2RjZmE1NzQzMjU0M2I2NmU5LnBuZ1wiLFwibmFtZVwiOlwicXVlZW5fMV90ZXgucG5nXCJ9LFwiYW5pbVR5cGVcIjpcImRyYWdvbkJvbmVcIixcInJlY3RcIjp7XCJ4XCI6MzYuNCxcInlcIjo3OC41NixcIndpZHRoXCI6MTg0Ljg3LFwiaGVpZ2h0XCI6MTg0Ljg3fX0se1wiaWRcIjpcIjE2NTA1NDY2ODcwNjlcIixcImluZGV4XCI6OCxcImF1ZGlvX3VybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzMwMTg1OGRmN2IwN2U2NjE0MjZhMDA2YWNiMjYwNTljLm1wM1wiLFwiaXRlbVR5cGVcIjpcInJlY3RcIixcImZvbnRTY2FsZVwiOjAuNzAwNzgxMjUsXCJpbWdTY2FsZVwiOjEsXCJpbWdTaXplV1wiOjAsXCJpbWdTaXplSFwiOjAsXCJtYXBTY2FsZVwiOjAuNzAwNzgxMjUsXCJkcmFnRG90XCI6e1wieFwiOjQ0OC41LFwieVwiOjE3MC41NDk4NDU4Mzc2MTU2Nn0sXCJnSWR4XCI6XCIwXCIsXCJsYWJlbFRleHRcIjpcIjQyLjVcIixcInBvc1hcIjo1MTIuMzg4MzUyNDYyOTgzNCxcInBvc1lcIjoyNTkuODM2MTcxMjU4NDksXCJza2VKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2YzYThlZmNkMTg1MGVlOGE2Y2VlODlhMThlODZkYzRhLmpzb25cIixcIm5hbWVcIjpcIm1pbGtfc2tlLmpzb25cIn0sXCJ0ZXhKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzczYjA1ZjE5ZDQxOWJkM2FjMTdjMmI5MmRhYjg4NDIzLmpzb25cIixcIm5hbWVcIjpcIm1pbGtfdGV4Lmpzb25cIn0sXCJ0ZXhQbmdEYXRhXCI6e1widXJsXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vZTM4Mzc1ZGE0NmY4NWEyMzIwMmQ1Y2JjODEyZDYyZTQucG5nXCIsXCJuYW1lXCI6XCJtaWxrX3RleC5wbmdcIn0sXCJyZWN0XCI6e1wieFwiOjM3LjcyLFwieVwiOjE2OC4xLFwid2lkdGhcIjoyMS4xNyxcImhlaWdodFwiOjQwLjM0fX0se1wiaWRcIjpcIjE2NTA1NDcwNjA0OTBcIixcImluZGV4XCI6OSxcImF1ZGlvX3VybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzA1ZTViMjlhZWZmYTRlZjk0YmNjNWIyMzE2N2FlYzkwLm1wM1wiLFwiaXRlbVR5cGVcIjpcInJlY3RcIixcImZvbnRTY2FsZVwiOjAuNzAwNzgxMjUsXCJpbWdTY2FsZVwiOjEsXCJpbWdTaXplV1wiOjAsXCJpbWdTaXplSFwiOjAsXCJtYXBTY2FsZVwiOjAuNzAwNzgxMjUsXCJkcmFnRG90XCI6e1wieFwiOjQ0OC41LFwieVwiOjE3MC41NDk4NDU4Mzc2MTU2Nn0sXCJnSWR4XCI6XCIwXCIsXCJsYWJlbFRleHRcIjpcIjQ3LjdcIixcInBvc1hcIjo0ODMuMjIxMzU3MzQwMDY3MzYsXCJwb3NZXCI6MjQ1LjM4MDM5NDA3MDc2NTA1LFwic2tlSnNvbkRhdGFcIjp7XCJ1cmxcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS85OWE2ZTZkOTM2MWVjYTdlNTFlZDM0Y2EyZTBmZDAxNy5qc29uXCIsXCJuYW1lXCI6XCJiaXJkX3NrZS5qc29uXCJ9LFwidGV4SnNvbkRhdGFcIjp7XCJ1cmxcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS82YTM3OWRkYmU2ZGYxODA2MzY4YzQzYzhlZTgyMzMyZC5qc29uXCIsXCJuYW1lXCI6XCJiaXJkX3RleC5qc29uXCJ9LFwidGV4UG5nRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2NmMDRjNjMxMDRkODk1MTE5MDI1Nzg5NDQwNjFmOTgwLnBuZ1wiLFwibmFtZVwiOlwiYmlyZF90ZXgucG5nXCJ9LFwicmVjdFwiOntcInhcIjoxNy45MSxcInlcIjoxNDAuODMsXCJ3aWR0aFwiOjE4LjUyLFwiaGVpZ2h0XCI6NzMuOTV9fSx7XCJpZFwiOlwiMTY1MDU0NzM3Mzg2OVwiLFwiaW5kZXhcIjoxMCxcIml0ZW1UeXBlXCI6XCJyZWN0XCIsXCJmb250U2NhbGVcIjowLjcwMDc4MTI1LFwiaW1nU2NhbGVcIjoxLFwiaW1nU2l6ZVdcIjowLFwiaW1nU2l6ZUhcIjowLFwibWFwU2NhbGVcIjowLjcwMDc4MTI1LFwiZHJhZ0RvdFwiOntcInhcIjo0NDguNSxcInlcIjoxNzAuNTQ5ODQ1ODM3NjE1NjZ9LFwiZ0lkeFwiOlwiMVwiLFwibGFiZWxUZXh0XCI6XCI2MFwiLFwicG9zWFwiOjQyMC41LFwicG9zWVwiOjI5NSxcInNrZUpzb25EYXRhXCI6e1widXJsXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vN2ViYzI4ZjNmMzM5YjE2Y2E0OGQyMGYyYTNlYjQ0YzEuanNvblwiLFwibmFtZVwiOlwiYWxsaWdhdG9yX3NrZS5qc29uXCJ9LFwidGV4SnNvbkRhdGFcIjp7XCJ1cmxcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9iMDRlODIwNmZkMjE3YmQyMmRjZGFjMTAwODM5MzMxNy5qc29uXCIsXCJuYW1lXCI6XCJhbGxpZ2F0b3JfdGV4Lmpzb25cIn0sXCJ0ZXhQbmdEYXRhXCI6e1widXJsXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vYjM5OTBkOTQ2MTJiZDNkNmUyNWNmMjAwZjg1ZTQzMzQucG5nXCIsXCJuYW1lXCI6XCJhbGxpZ2F0b3JfdGV4LnBuZ1wifSxcInJlY3RcIjp7XCJ4XCI6MTYuMDYsXCJ5XCI6MjI5LjI0LFwid2lkdGhcIjoxMDMuNTIsXCJoZWlnaHRcIjo4Ni44OX19LHtcImlkXCI6XCIxNjUwNTQ3NDgyMzk4XCIsXCJpbmRleFwiOjExLFwiaXRlbVR5cGVcIjpcInJlY3RcIixcImZvbnRTY2FsZVwiOjAuNzAwNzgxMjUsXCJpbWdTY2FsZVwiOjEsXCJpbWdTaXplV1wiOjAsXCJpbWdTaXplSFwiOjAsXCJtYXBTY2FsZVwiOjAuNzAwNzgxMjUsXCJkcmFnRG90XCI6e1wieFwiOjQ0OC41LFwieVwiOjE3MC41NDk4NDU4Mzc2MTU2Nn0sXCJnSWR4XCI6XCIxXCIsXCJza2VKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2ExOWYyZWQ3YzI5N2M3MGM2MzllNTRlOTY5ZDY0NTkzLmpzb25cIixcIm5hbWVcIjpcInJhYmJpdF9za2UuanNvblwifSxcInRleEpzb25EYXRhXCI6e1widXJsXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vNGI0ZjgxODljZjc5ZmFkZDdlNjUzM2FkODRkYjk2YmUuanNvblwiLFwibmFtZVwiOlwicmFiYml0X3RleC5qc29uXCJ9LFwidGV4UG5nRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzhmOTUzYzg2MWVhYzk0ZTRlMjJhOGU0ZWMzZWI1NmI1LnBuZ1wiLFwibmFtZVwiOlwicmFiYml0X3RleC5wbmdcIn0sXCJyZWN0XCI6e1wieFwiOjM2LjQsXCJ5XCI6NzguNTYsXCJ3aWR0aFwiOjE4NC44NyxcImhlaWdodFwiOjE4NC44N319LHtcImlkXCI6XCIxNjUwNTQ3NDk2MjMyXCIsXCJpbmRleFwiOjEyLFwiaXRlbVR5cGVcIjpcInJlY3RcIixcImZvbnRTY2FsZVwiOjAuNzAwNzgxMjUsXCJpbWdTY2FsZVwiOjEsXCJpbWdTaXplV1wiOjAsXCJpbWdTaXplSFwiOjAsXCJtYXBTY2FsZVwiOjAuNzAwNzgxMjUsXCJkcmFnRG90XCI6e1wieFwiOjQ0OC41LFwieVwiOjE3MC41NDk4NDU4Mzc2MTU2Nn0sXCJnSWR4XCI6XCIxXCIsXCJza2VKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzg5ZTBmYzYwODVjMjk0ODY2MTQyODAzYjRmZjI2N2JhLmpzb25cIixcIm5hbWVcIjpcIktpbmdfc2tlLmpzb25cIn0sXCJ0ZXhKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2Q2Y2ZkMmQ5Y2QyY2Q5YWZmMDlhYjdmMDNlMjg3NDIxLmpzb25cIixcIm5hbWVcIjpcIktpbmdfdGV4Lmpzb25cIn0sXCJ0ZXhQbmdEYXRhXCI6e1widXJsXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vOGMwMmMzNTYxYTJlZWEwNDIzY2IxMTAyMjAwZTc2ZjkucG5nXCIsXCJuYW1lXCI6XCJLaW5nX3RleC5wbmdcIn0sXCJyZWN0XCI6e1wieFwiOjM2LjQsXCJ5XCI6NzguNTYsXCJ3aWR0aFwiOjE4NC44NyxcImhlaWdodFwiOjE4NC44N319LHtcImlkXCI6XCIxNjUwNTQ3NTEwNjQ4XCIsXCJpbmRleFwiOjEzLFwiYXVkaW9fdXJsXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vNzE3ZWU5NzEzYjE4ZDMyZDM4ZWUwODljMGFiYzg1ZWEubXAzXCIsXCJpdGVtVHlwZVwiOlwicmVjdFwiLFwiZm9udFNjYWxlXCI6MC43MDA3ODEyNSxcImltZ1NjYWxlXCI6MSxcImltZ1NpemVXXCI6MCxcImltZ1NpemVIXCI6MCxcIm1hcFNjYWxlXCI6MC43MDA3ODEyNSxcImRyYWdEb3RcIjp7XCJ4XCI6NDQ4LjUsXCJ5XCI6MTcwLjU0OTg0NTgzNzYxNTY2fSxcImdJZHhcIjpcIjBcIixcImxhYmVsVGV4dFwiOlwiMTAuMlwiLFwicG9zWFwiOjY0MS42NjgwMTM0OTUxOTQ0LFwicG9zWVwiOjI4OC45MzY3MjcwMjU0MTI1NSxcInNrZUpzb25EYXRhXCI6e1widXJsXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vM2I3MTEzZWJkZWRjYWU1NGJlNmQwYjk2MzM4NzViODguanNvblwiLFwibmFtZVwiOlwibmV0X3NrZS5qc29uXCJ9LFwidGV4SnNvbkRhdGFcIjp7XCJ1cmxcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9mYzgxMDc2MmYxZjIwMjU1ODVlNzIyZTQzZTk0MTM3Yi5qc29uXCIsXCJuYW1lXCI6XCJuZXRfdGV4Lmpzb25cIn0sXCJ0ZXhQbmdEYXRhXCI6e1widXJsXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vNWM5MDgyMGRhNGY1NTkyODBmZWU0NTc5ZThkYjJkYmMucG5nXCIsXCJuYW1lXCI6XCJuZXRfdGV4LnBuZ1wifSxcInJlY3RcIjp7XCJ4XCI6MTIzLjAzLFwieVwiOjE4My4wMixcIndpZHRoXCI6MzcuOSxcImhlaWdodFwiOjUyLjY4fX0se1wiaWRcIjpcIjE2NTA1NDc1NTUwMThcIixcImluZGV4XCI6MTQsXCJpdGVtVHlwZVwiOlwicmVjdFwiLFwiZm9udFNjYWxlXCI6MC43MDA3ODEyNSxcImltZ1NjYWxlXCI6MSxcImltZ1NpemVXXCI6MCxcImltZ1NpemVIXCI6MCxcIm1hcFNjYWxlXCI6MC43MDA3ODEyNSxcImRyYWdEb3RcIjp7XCJ4XCI6NDQ4LjUsXCJ5XCI6MTcwLjU0OTg0NTgzNzYxNTY2fSxcImdJZHhcIjpcIjFcIixcInNrZUpzb25EYXRhXCI6e1widXJsXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vMGE1YzhkZjVhMjNhY2E3YTc1NDBiODczNDBjNzYwOGYuanNvblwiLFwibmFtZVwiOlwib3N0cmljaF9za2UuanNvblwifSxcInRleEpzb25EYXRhXCI6e1widXJsXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vMjQ3ODU3M2M5MWQxYTgzZmEwMzhlN2Y2YTlkYjhhODUuanNvblwiLFwibmFtZVwiOlwib3N0cmljaF90ZXguanNvblwifSxcInRleFBuZ0RhdGFcIjp7XCJ1cmxcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS80NjE5YWNlNjdlNTc3MGUxZmQ3ZmMzZmY3NmU3MjYzZS5wbmdcIixcIm5hbWVcIjpcIm9zdHJpY2hfdGV4LnBuZ1wifSxcInJlY3RcIjp7XCJ4XCI6MzYuNCxcInlcIjo3OC41NixcIndpZHRoXCI6MTg0Ljg3LFwiaGVpZ2h0XCI6MTg0Ljg3fX0se1wiaWRcIjpcIjE2NTA1NDc1NzMzMDVcIixcImluZGV4XCI6MTUsXCJhdWRpb191cmxcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9iN2JjMTYxYzNhM2VlMTQzYTUzMDU4NjkxYWJmNGZhOS5tcDNcIixcIml0ZW1UeXBlXCI6XCJyZWN0XCIsXCJmb250U2NhbGVcIjowLjcwMDc4MTI1LFwiaW1nU2NhbGVcIjoxLFwiaW1nU2l6ZVdcIjowLFwiaW1nU2l6ZUhcIjowLFwibWFwU2NhbGVcIjowLjcwMDc4MTI1LFwiZHJhZ0RvdFwiOntcInhcIjo0NDguNSxcInlcIjoxNzAuNTQ5ODQ1ODM3NjE1NjZ9LFwiZ0lkeFwiOlwiMFwiLFwibGFiZWxUZXh0XCI6XCIxNS45XCIsXCJwb3NYXCI6NjcwLjgxMTk4Mzk3NzI3NTQsXCJwb3NZXCI6MTM3Ljg3OTQwODcwMjAxNjk3LFwic2tlSnNvbkRhdGFcIjp7XCJ1cmxcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS85MWU4Y2EwM2QxZGY4OWU0ZWMyNDA0NDIxZDRjNjkyZi5qc29uXCIsXCJuYW1lXCI6XCJkdXJhem5vX3NrZS5qc29uXCJ9LFwidGV4SnNvbkRhdGFcIjp7XCJ1cmxcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8zMmQyNTliMDE5NDM3MDYyNWY4ZmU5NGIxZGRjMGE4NS5qc29uXCIsXCJuYW1lXCI6XCJkdXJhem5vX3RleC5qc29uXCJ9LFwidGV4UG5nRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzhlZWY1NmIyMGUyMjFhMzZmY2UxZDY3MjE5OTg1OWZmLnBuZ1wiLFwibmFtZVwiOlwiZHVyYXpub190ZXgucG5nXCJ9LFwicmVjdFwiOntcInhcIjoxNDYuOTIsXCJ5XCI6ODMuNzMsXCJ3aWR0aFwiOjMyLjM0LFwiaGVpZ2h0XCI6MzIuMzR9fV19XG5cdFx0Ly8gcmV0dXJuICB7XCJiZWdpbl9hdWRpb1wiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8zZDMwN2EwMjY2M2UxY2Q2NjdiN2M5NTEzNDBlYzk4Yi5tcDNcIixcImJlZ2luX3NlcF90aW1lXCI6MSxcImd1aWRlX2F1ZGlvXCI6XCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzNkMzA3YTAyNjYzZTFjZDY2N2I3Yzk1MTM0MGVjOThiLm1wM1wiLFwicGxheWluZ19hdWRpb1wiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8zZDMwN2EwMjY2M2UxY2Q2NjdiN2M5NTEzNDBlYzk4Yi5tcDNcIixcInJpZ2h0X2F1ZGlvXCI6XCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzNkMzA3YTAyNjYzZTFjZDY2N2I3Yzk1MTM0MGVjOThiLm1wM1wiLFwid3JvbmdfYXVkaW9cIjpcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vM2QzMDdhMDI2NjNlMWNkNjY3YjdjOTUxMzQwZWM5OGIubXAzXCIsXCJ3cm9uZ19hdWRpbzFcIjpcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vM2QzMDdhMDI2NjNlMWNkNjY3YjdjOTUxMzQwZWM5OGIubXAzXCIsXCJ3cm9uZ19hdWRpbzJcIjpcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vM2QzMDdhMDI2NjNlMWNkNjY3YjdjOTUxMzQwZWM5OGIubXAzXCIsXCJlbmRfYXVkaW9cIjpcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vM2QzMDdhMDI2NjNlMWNkNjY3YjdjOTUxMzQwZWM5OGIubXAzXCIsXCJiZ0l0ZW1cIjp7XCJ1cmxcIjpcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vODRlYzZlZGMyMGJjZWFhYTlkYmU4MjQwOTJiNjg2MGQucG5nXCIsXCJyZWN0XCI6e1wieFwiOjczNi45NSxcInlcIjowLFwid2lkdGhcIjo1OTkuMDksXCJoZWlnaHRcIjo3NzV9fSxcImhvdFpvbmVJdGVtQXJyXCI6W3tcImlkXCI6XCIxNjU5MzMzNjQ1NTczXCIsXCJpbmRleFwiOjAsXCJhdWRpb191cmxcIjpcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vNWExYTI2NzA4NDViZmU3NjY2MmU4NmQ5YTNhNjlmODEubXAzXCIsXCJpdGVtVHlwZVwiOlwicmVjdFwiLFwiZm9udFNjYWxlXCI6MS42MTk1MzEyNSxcImltZ1NjYWxlXCI6MSxcImltZ1NpemVXXCI6MCxcImltZ1NpemVIXCI6MCxcIm1hcFNjYWxlXCI6MS42MTk1MzEyNSxcImRyYWdEb3RcIjp7XCJ4XCI6MTAzNi41LFwieVwiOjM4Ny41fSxcImdJZHhcIjpcIjFcIixcImxhYmVsVGV4dFwiOlwiMVwiLFwicG9zWFwiOjg4Ny41LFwicG9zWVwiOjE2NS41LFwic2tlSnNvbkRhdGFcIjp7XCJ1cmxcIjpcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vMTMzYTFmNjA3MTllZDI2MjQ3ZTM1ZGMwMjJkODI4NjIuanNvblwiLFwibmFtZVwiOlwic3BpbmVib3ktcHJvLmpzb25cIn0sXCJ0ZXhKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9lMDk0NWI4MjY1ZWEzYjgwNTNhZmI4MTRjNmI4NDlkMy5hdGxhc1wiLFwibmFtZVwiOlwic3BpbmVib3ktcHJvLmF0bGFzXCJ9LFwidGV4UG5nRGF0YVwiOntcInVybFwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS81MTc1NTNmNTAyMjQ5MTUxNDhmOWVmYzViNzU1Njc5OC5wbmdcIixcIm5hbWVcIjpcInNwaW5lYm95LXByby5wbmdcIn0sXCJhbmltVHlwZVwiOlwic3BpbmVcIixcInJlY3RcIjp7XCJ4XCI6NDguMDUsXCJ5XCI6NjUuNSxcIndpZHRoXCI6MjA1LFwiaGVpZ2h0XCI6MjAwfX0se1wiaWRcIjpcIjE2NTkzMzQwOTg5MzBcIixcImluZGV4XCI6MSxcImF1ZGlvX3VybFwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8xNmViMDZhNmJlYjllNGZhNzdjOWI1ZDJkNjQzYWIyOS5tcDNcIixcIml0ZW1UeXBlXCI6XCJyZWN0XCIsXCJmb250U2NhbGVcIjoxLjYxOTUzMTI1LFwiaW1nU2NhbGVcIjoxLFwiaW1nU2l6ZVdcIjowLFwiaW1nU2l6ZUhcIjowLFwibWFwU2NhbGVcIjoxLjYxOTUzMTI1LFwiZHJhZ0RvdFwiOntcInhcIjoxMDM2LjUsXCJ5XCI6Mzg3LjV9LFwiZ0lkeFwiOlwiMFwiLFwibGFiZWxUZXh0XCI6XCIxXCIsXCJwb3NYXCI6MTIxMi41LFwicG9zWVwiOjY0My41LFwic2tlSnNvbkRhdGFcIjp7XCJ1cmxcIjpcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vNjc5ZmVkMjZkYWE0NjQ4MTlkNTUzZGU2MzMxYjM1NTIuanNvblwiLFwibmFtZVwiOlwiYWxpZW4tcHJvLmpzb25cIn0sXCJ0ZXhKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS82NWQ4MjE0YzZiNWM1ZDA0OTZlMTdhZGIwNDA4Mjc2YS5hdGxhc1wiLFwibmFtZVwiOlwiYWxpZW4tcHJvLmF0bGFzXCJ9LFwidGV4UG5nRGF0YVwiOntcInVybFwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9hMzE5YjM3Mjg5OTIzOTMyNWI5MGJiNGVjMDdiNDk3MC5wbmdcIixcIm5hbWVcIjpcImFsaWVuLXByby5wbmdcIn0sXCJhbmltVHlwZVwiOlwic3BpbmVcIixcInJlY3RcIjp7XCJ4XCI6Mzc1LjU2LFwieVwiOjU0My41LFwid2lkdGhcIjoyMDAsXCJoZWlnaHRcIjoyMDB9fV19XG5cdFx0Ly8gcmV0dXJuIGRlZmF1bHREYXRhO1xuXHR9LFxuXG5cdHByZWxvYWRJdGVtKCkge1xuXHRcdHRoaXMuYWRkUHJlbG9hZEltYWdlKCk7XG5cdFx0dGhpcy5hZGRQcmVsb2FkQXVkaW8oKTtcblx0XHR0aGlzLmFkZFByZWxvYWRBbmltYSgpO1xuXHRcdHRoaXMucHJlbG9hZCgpO1xuXHR9LFxuXG5cblx0YWRkUHJlbG9hZEltYWdlKCkge1xuXG5cdFx0dGhpcy5faW1hZ2VSZXNMaXN0LnB1c2goeyB1cmw6IHRoaXMuZGF0YS5iZ0l0ZW0udXJsfSk7XG5cblx0XHRmb3IgKGNvbnN0IHEgb2YgdGhpcy5kYXRhLmhvdFpvbmVJdGVtQXJyKSB7XG5cdFx0XHRpZiAocS5nSWR4ID09JzAnKSB7XG5cdFx0XHRcdHRoaXMuX2ltYWdlUmVzTGlzdC5wdXNoKHsgdXJsOiBxLnRleFBuZ0RhdGEudXJsfSk7XG5cdFx0XHR9XG5cblx0XHRcdGlmIChxLmdJZHggPT0nMScpIHtcblx0XHRcdFx0dGhpcy5faW1hZ2VSZXNMaXN0LnB1c2goeyB1cmw6IHEudGV4UG5nRGF0YS51cmwgfSk7XG5cdFx0XHR9XG5cdFx0XHRpZiAocS5nSWR4ID09JzInKSB7XG5cdFx0XHRcdHRoaXMuX2ltYWdlUmVzTGlzdC5wdXNoKHsgdXJsOiBxLnBpY191cmx9KTtcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdHByZXBhcmVBdWRpb0NsaXAodXJsLCBrZXkpIHtcblx0XHRpZiAodXJsKSB7XG5cdFx0XHRjYy5hc3NldE1hbmFnZXIubG9hZFJlbW90ZSh1cmwsIChlcnIsIGF1ZGlvQ2xpcCkgPT4ge1xuXHRcdFx0XHRpZiAoYXVkaW9DbGlwKSB7XG5cdFx0XHRcdFx0dGhpc1trZXldID0gYXVkaW9DbGlwO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9XG5cdH0sXG5cdGFkZFByZWxvYWRBdWRpbygpIHtcblxuXHRcdHRoaXMuX2F1ZGlvUmVzTGlzdC5wdXNoKHsgdXJsOiB0aGlzLmRhdGEuYmVnaW5fYXVkaW8gfSk7XG5cdFx0Ly8gdGhpcy5wcmVwYXJlQXVkaW9DbGlwKHRoaXMuZGF0YS5iZWdpbl9hdWRpbzEsICdiZWdpbl9hdWRpbzEnKVxuXHRcdC8vIHRoaXMuX2F1ZGlvUmVzTGlzdC5wdXNoKHsgdXJsOiB0aGlzLmRhdGEuYmVnaW5fYXVkaW8yIH0pO1xuXHRcdC8vIHRoaXMucHJlcGFyZUF1ZGlvQ2xpcCh0aGlzLmRhdGEuYmVnaW5fYXVkaW8yLCAnYmVnaW5fYXVkaW8yJylcblx0XHR0aGlzLl9hdWRpb1Jlc0xpc3QucHVzaCh7IHVybDogdGhpcy5kYXRhLmd1aWRlX2F1ZGlvIH0pO1xuXHRcdHRoaXMuX2F1ZGlvUmVzTGlzdC5wdXNoKHsgdXJsOiB0aGlzLmRhdGEucGxheWluZ19hdWRpbyB9KTtcblx0XHRpZiAodGhpcy5kYXRhLndyb25nX2F1ZGlvKSB7XG5cdFx0XHR0aGlzLl9hdWRpb1Jlc0xpc3QucHVzaCh7IHVybDogdGhpcy5kYXRhLndyb25nX2F1ZGlvIH0pO1xuXHRcdFx0dGhpcy53cm9uZ0F1ZGlvID0gdGhpcy5kYXRhLndyb25nX2F1ZGlvXG5cdFx0fVxuXHRcdGlmICh0aGlzLmRhdGEucmlnaHRfYXVkaW8pIHtcblx0XHRcdHRoaXMuX2F1ZGlvUmVzTGlzdC5wdXNoKHsgdXJsOiB0aGlzLmRhdGEucmlnaHRfYXVkaW8gfSk7XG5cdFx0XHR0aGlzLnJpZ2h0QXVkaW8gPSB0aGlzLmRhdGEucmlnaHRfYXVkaW9cblx0XHR9XG5cdFx0dGhpcy5fYXVkaW9SZXNMaXN0LnB1c2goeyB1cmw6IHRoaXMuZGF0YS53cm9uZ19hdWRpbzEgfSk7XG5cdFx0dGhpcy5fYXVkaW9SZXNMaXN0LnB1c2goeyB1cmw6IHRoaXMuZGF0YS53cm9uZ19hdWRpbzIgfSk7XG5cdFx0dGhpcy5fYXVkaW9SZXNMaXN0LnB1c2goeyB1cmw6IHRoaXMuZGF0YS5lbmRfYXVkaW8gfSk7XG5cblxuXHRcdGZvciAoY29uc3QgcSBvZiB0aGlzLmRhdGEuaG90Wm9uZUl0ZW1BcnIpIHtcblx0XHRcdGlmIChxLmdJZHggPT0nMCcpIHtcblx0XHRcdFx0dGhpcy5fYXVkaW9SZXNMaXN0LnB1c2goeyB1cmw6IHEuYXVkaW9fdXJsIH0pO1xuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0ZGVidWdQb2ludGVyKCkge1xuXHRcdGNvbnN0IGJveERlYnVnZ2VyID0gY2MuZmluZCgnQ2FudmFzL2JveC1kZWJ1Z2dlcicpO1xuXHRcdGlmICghdGhpcy5pc0RlYnVnKSB7XG5cdFx0XHRib3hEZWJ1Z2dlci5hY3RpdmUgPSBmYWxzZTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0aWYgKCF0aGlzLlBPSU5URVJfTk9ERSkge1xuXHRcdFx0dGhpcy5QT0lOVEVSX05PREUgPSBuZXcgY2MuTm9kZSgpO1xuXHRcdFx0dGhpcy5QT0lOVEVSX05PREUucGFyZW50ID0gYm94RGVidWdnZXI7XG5cdFx0XHR0aGlzLlBPSU5URVJfTk9ERS5uYW1lID0gJ1BPSU5URVJfTk9ERSdcblx0XHRcdHRoaXMuUE9JTlRFUl9OT0RFLmFkZENvbXBvbmVudChjYy5HcmFwaGljcyk7XG5cdFx0fVxuXHRcdGNvbnN0IGdyYXAgPSB0aGlzLlBPSU5URVJfTk9ERS5nZXRDb21wb25lbnQoY2MuR3JhcGhpY3MpO1xuXHRcdGdyYXAuY2xlYXIoKTtcblx0XHRjb25zdCBncm91bmQgPSBjYy5maW5kKCdDYW52YXMvZnJhbWUtYm9yZGVyL2dyb3VuZCcpO1xuXHRcdGNvbnN0IHt3aWR0aDogYmFzZVcsIGhlaWdodDogYmFzZUh9ID0gZ3JvdW5kO1xuXHRcdGNvbnN0IHt4OiBweCwgeTogcHl9ID0gdGhpcy5fbGFzdEZpbmdlclBvc2l0aW9uLnBvcztcblx0XHRsZXQgeCA9IGJhc2VXICogcHggLSBiYXNlVyAvIDI7XG5cdFx0bGV0IHkgPSBiYXNlSCAtIChiYXNlSCAqIHB5KSAtIGJhc2VIIC8gMiAtIDE2O1xuXHRcdGNvbnN0IHBuID0gbmV3IGNjLk5vZGUoKTtcblx0XHRcblx0XHRncmFwLmZpbGxDb2xvcj1jYy5jb2xvcigyNTUsIDAsIDApO1xuXHRcdGdyYXAuY2lyY2xlKHgsIHksIDMyKTtcblx0XHRncmFwLmZpbGwoKTtcblx0XHRncmFwLnN0cm9rZSgpO1xuXHR9LFxuXHRkZWJ1Z0dyYXBoaWNzKCkge1xuXHRcdGNvbnN0IGJveERlYnVnZ2VyID0gY2MuZmluZCgnQ2FudmFzL2JveC1kZWJ1Z2dlcicpO1xuXHRcdGlmICghdGhpcy5pc0RlYnVnKSB7XG5cdFx0XHRib3hEZWJ1Z2dlci5hY3RpdmUgPSBmYWxzZTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Ym94RGVidWdnZXIuYWN0aXZlID0gdHJ1ZTtcblx0XHRjb25zb2xlLmxvZygnc2hvdyBkZWJ1ZyBncmFwaGljcycpO1xuXHRcdGNvbnN0IGdyb3VuZCA9IGNjLmZpbmQoJ0NhbnZhcy9mcmFtZS1ib3JkZXIvZ3JvdW5kJyk7XG5cdFx0Y29uc3QgY2FudmFzID0gY2MuZmluZCgnQ2FudmFzJyk7XG5cdFx0Y29uc3Qge3dpZHRoOiBiYXNlVywgaGVpZ2h0OiBiYXNlSH0gPSBncm91bmQ7XG5cdFx0Y29uc3Qge3dpZHRoOiBiZ1csIGhlaWdodDogYmdIfSA9IHRoaXMuZGF0YS5iZ0l0ZW0ucmVjdFxuXHRcdGNvbnN0IHNjYWxlWCA9IGJnVyAvIGJhc2VXO1xuXHRcdGNvbnN0IHNjYWxlWSA9IGJnSCAvIGJhc2VIO1xuXHRcdGxldCBhZGRlZCAgPWZhbHNlXG5cdFx0dGhpcy5kYXRhLmhvdFpvbmVJdGVtQXJyLmZvckVhY2goYXJlYSA9PiB7XG5cdFx0XHRcblx0XHRcdGlmIChhZGRlZCkge1xuXHRcdFx0XHQvLyByZXR1cm5cblx0XHRcdH1cblx0XHRcdGlmIChhcmVhLmdJZHggIT0gJzAnKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdGFkZGVkID0gdHJ1ZTtcblx0XHRcdGNvbnN0IGRuID0gbmV3IGNjLk5vZGUoKTtcblx0XHRcdGNvbnN0IGxibE5vZGUgPSBuZXcgY2MuTm9kZSgpO1xuXHRcdFx0bGJsTm9kZS5wYXJlbnQgPSBkblxuXHRcdFx0Y29uc3QgbGJsID0gbGJsTm9kZS5hZGRDb21wb25lbnQoY2MuTGFiZWwpO1xuXHRcdFx0bGJsTm9kZS5jb2xvciA9IGNjLmNvbG9yKDAsMCwwKVxuXHRcdFx0bGJsLnN0cmluZyA9IGFyZWEuc2tlSnNvbkRhdGEubmFtZS5zdWJzdHJpbmcoMCwgYXJlYS5za2VKc29uRGF0YS5uYW1lLmxlbmd0aCAtIDkpXG5cdFx0XHRkbi5uYW1lID0gbGJsLnN0cmluZztcblx0XHRcdGRuLnBhcmVudCA9IGJveERlYnVnZ2VyO1xuXHRcdFx0ZG4ud2lkdGggPSBiYXNlVztcblx0XHRcdGRuLmhlaWdodCA9IGJhc2VIO1xuXHRcdFx0XG5cdFx0XHRjb25zdCBncmFwID0gZG4uYWRkQ29tcG9uZW50KGNjLkdyYXBoaWNzKTtcblx0XHRcdGNvbnN0IHIgPSBSYW5kb21JbnQoMSwyNTUpXG5cdFx0XHRjb25zdCBnID0gUmFuZG9tSW50KDEsMjU1KVxuXHRcdFx0Y29uc3QgYiA9IFJhbmRvbUludCgxLDI1NSlcblx0XHRcdGdyYXAuZmlsbENvbG9yPWNjLmNvbG9yKHIsIGcsIGIsIDEyNyk7XG5cdFx0XHRjb25zdCB7eDogcngsIHk6IHJ5LCB3aWR0aDogcncsIGhlaWdodDogcmh9ID0gIGFyZWEucmVjdDtcblx0XHRcdGxldCB3ID0gKHJ3IC8gYmdXKSAqIGJhc2VXO1xuXHRcdFx0bGV0IGggPSAocmggLyBiZ0gpICogYmFzZUg7XG5cdFx0XHRsZXQgeCA9IChyeCAvIGJnVykgKiBiYXNlVyAtIGJhc2VXIC8gMjtcblx0XHRcdGxldCB5ID0gYmFzZUggLSAoKHJ5IC8gYmdIKSAqIGJhc2VIKSAtIGggLSBiYXNlSCAvIDI7XG5cdFx0XHQvLyB3ICo9IHNjYWxlWFxuXHRcdFx0Ly8gaCAqPSBzY2FsZVlcblx0XHRcdC8vIHggKj0gc2NhbGVYXG5cdFx0XHQvLyB5ICo9IHNjYWxlWVxuICAgICAgICAgICAgLy8gY29uc3QgcCA9IGJveERlYnVnZ2VyLmNvbnZlcnRUb05vZGVTcGFjZUFSKGNjLnYyKHgseSkpO1xuXHRcdFx0Ly8geCA9IHAueDtcblx0XHRcdC8vIHkgPSBwLnk7XG5cdFx0XHRsYmxOb2RlLnggPSB4O1xuXHRcdFx0bGJsTm9kZS55ID0geSArIGg7XG5cdFx0XHQvLyBkbi5zY2FsZVggPSBzY2FsZVg7XG5cdFx0XHQvLyBkbi5zY2FsZVkgPSBzY2FsZVk7XG5cdFx0XHQvLyBkbi5zY2FsZSA9IGFyZWEubWFwU2NhbGU7IC8vIG1pblNjYWxlOyAvLyB0aGlzLl9tYXBTY2FsZU1heCAqIGFyZWEubWFwU2NhbGU7IC8vIDtcblx0XHRcdGNvbnNvbGUubG9nKCdbZGVidWddJywgYXJlYS5za2VKc29uRGF0YS5uYW1lLCB4LCB5LCB3LCBoKTtcblx0XHRcdGdyYXAuZmlsbFJlY3QoeCwgeSwgdywgaCk7XG5cdFx0XHRncmFwLnN0cm9rZSgpO1xuXHRcdFx0XG5cdFx0fSk7XG5cblx0fSxcblx0YWRkUHJlbG9hZEFuaW1hKCkge1xuXG5cdH0sXG5cblx0cHJlbG9hZCgpIHtcblxuXHRcdGNvbnN0IHByZWxvYWRBcnIgPSB0aGlzLl9pbWFnZVJlc0xpc3QuY29uY2F0KHRoaXMuX2F1ZGlvUmVzTGlzdCkuY29uY2F0KHRoaXMuX2FuaW1hUmVzTGlzdCk7XG5cdFx0Ly8gY29uc29sZS5sb2cocHJlbG9hZEFycik7XG5cdFx0Y2MuYXNzZXRNYW5hZ2VyLmxvYWRBbnkocHJlbG9hZEFyciwgbnVsbCwgKGYsIHQsIGl0ZW0pID0+IHtcblx0XHRcdC8vIGNvbnNvbGUubG9nKGYsIHQsIGl0ZW0pXG5cdFx0fSwgKGVyciwgZGF0YSkgPT4ge1xuXHRcdFx0Ly8gY29uc29sZS5sb2coZXJyLCBkYXRhKTtcblx0XHRcdGNvbnN0IGdyb3VuZCA9IGNjLmZpbmQoYENhbnZhcy9mcmFtZS1ib3JkZXIvZ3JvdW5kYCk7XG5cdFx0XHRjb25zdCBncm91bmRCZyA9IGNjLmZpbmQoYENhbnZhcy9mcmFtZS1ib3JkZXIvZ3JvdW5kL2JnYCk7XG5cdFx0XHRncm91bmRCZy5hY3RpdmUgPSBmYWxzZTtcblx0XHRcdGNvbnN0IGJhc2VSZWN0ID0gdGhpcy5kYXRhLmJnSXRlbS5yZWN0O1xuXHRcdFx0Z2V0U3ByaXRlRnJpbWVCeVVybCh0aGlzLmRhdGEuYmdJdGVtLnVybCwgKHNmKSA9PiB7XG5cdFx0XHRcdGNvbnN0IGdzID0gZ3JvdW5kQmcuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSk7XG5cdFx0XHRcdGdzLnNwcml0ZUZyYW1lID0gc2Y7XG5cdFx0XHRcdGdyb3VuZEJnLmFjdGl2ZSA9IHRydWU7XG5cblx0XHRcdFx0bGV0IGRiQ291bnQgPSAwO1xuXHRcdFx0XHRsZXQgZmluaXNoRGJDb3VudCA9IDBcblx0XHRcdFx0Zm9yKGNvbnN0IGJsb2NrIG9mIHRoaXMuZGF0YS5ob3Rab25lSXRlbUFycikge1xuXHRcdFx0XHRcdGlmIChibG9jay5nSWR4ID09ICcwJyB8fCBibG9jay5nSWR4ID09ICcxJykge1xuXHRcdFx0XHRcdFx0ZGJDb3VudCsrO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRmb3IoY29uc3QgYmxvY2sgb2YgdGhpcy5kYXRhLmhvdFpvbmVJdGVtQXJyKSB7XG5cblx0XHRcdFx0XHRcblx0XHRcdFx0XHRpZiAoYmxvY2suZ0lkeCA9PSAnMicpIHtcblx0XHRcdFx0XHRcdGNvbnN0IHMxID0gKChncm91bmQud2lkdGggIC8gYmxvY2suaW1nU2l6ZVcpICsgKGdyb3VuZC5oZWlnaHQgIC8gYmxvY2suaW1nU2l6ZUgpKSAvIDJcblx0XHRcdFx0XHRcdGNvbnN0IG5vZGUgPSBuZXcgY2MuTm9kZSgpO1xuXHRcdFx0XHRcdFx0bm9kZS5wYXJlbnQgPSBncm91bmQ7XG5cdFx0XHRcdFx0XHRjb25zdCBzcHIgPSBub2RlLmFkZENvbXBvbmVudChjYy5TcHJpdGUpO1xuXHRcdFx0XHRcdFx0Z2V0U3ByaXRlRnJpbWVCeVVybChibG9jay5waWNfdXJsLCAoc2YpID0+IHtcblx0XHRcdFx0XHRcdHNwci5zcHJpdGVGcmFtZSA9IHNmO1xuXHRcdFx0XHRcdFx0bm9kZS5zY2FsZSA9IHMxO1xuXHRcdFx0XHRcdFx0fSlcblxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAoYmxvY2suZ0lkeCA9PSAnMCcgfHwgYmxvY2suZ0lkeCA9PSAnMScpIHtcblxuXHRcdFx0XHRcdFx0Y29uc3QgbiA9IG5ldyBjYy5Ob2RlKCk7XG5cdFx0XHRcdFx0XHQvLyBuLnNjYWxlID0gMC4yNTtcblx0XHRcdFx0XHRcdG4uc2NhbGUgPSBncm91bmQud2lkdGggLyBncm91bmRCZy53aWR0aDtcblxuXHRcdFx0XHRcdFx0bi5wYXJlbnQgPSBncm91bmQ7XG5cdFx0XHRcdFx0XHRuLmFjdGl2ZSA9IGZhbHNlO1xuXG5cdFx0XHRcdFx0XHRpZiAoYmxvY2suYW5pbVR5cGUgPT0gJ3NwaW5lJykge1xuXHRcdFx0XG5cdFx0XHRcdFx0XHRcdGNvbnN0IHNrZWxldG9uID0gbi5hZGRDb21wb25lbnQoc3AuU2tlbGV0b24pO1xuXHRcdFx0XHRcdFx0XHRuLmlzU3BpbmUgPSB0cnVlO1xuXG5cdFx0XHRcdFx0XHRcdGxvYWRTcGluZShza2VsZXRvbiwgYmxvY2sudGV4UG5nRGF0YS5uYW1lLCB7XG5cdFx0XHRcdFx0XHRcdFx0dGV4OiBibG9jay50ZXhQbmdEYXRhLnVybCwgXG5cdFx0XHRcdFx0XHRcdFx0YXRsYXM6IGJsb2NrLnRleEpzb25EYXRhLnVybCxcblx0XHRcdFx0XHRcdFx0XHRza2U6IGJsb2NrLnNrZUpzb25EYXRhLnVybCxcblx0XHRcdFx0XHRcdFx0fSkudGhlbigoe3dpZHRoLCBoZWlnaHR9KSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0bi53aWR0aCA9IHdpZHRoO1xuXHRcdFx0XHRcdFx0XHRcdG4uaGVpZ2h0ID0gaGVpZ2h0O1x0XG5cdFx0XHRcdFx0XHRcdFx0bi5hY3RpdmUgPSB0cnVlO1xuXHRcdFx0XHRcdFx0XHRcdC8vIGRiLnBsYXlBbmltYXRpb24oJ251bGwnLCAwKTtcblx0XHRcdFx0XHRcdFx0XHQvLyBza2VsZXRvbi5zZXRUb1NldHVwUG9zZSgpO1xuXHRcdFx0XHRcdFx0XHRcdC8vIHNrZWxldG9uLnNldEFuaW1hdGlvbigwLCAnZW5sYXJnZScsIHRydWUpO1x0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5fYWxsQW5pbWF0aW9uTm9kZXMucHVzaChuKTtcblx0XHRcdFx0XHRcdFx0XHRmaW5pc2hEYkNvdW50Kys7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coZmluaXNoRGJDb3VudCwgZGJDb3VudClcblx0XHRcdFx0XHRcdFx0XHRpZiAoZmluaXNoRGJDb3VudCA9PSBkYkNvdW50KSB7XG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLmxvYWRFbmQoKTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH0pLmNhdGNoKCgpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRmaW5pc2hEYkNvdW50Kys7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coZmluaXNoRGJDb3VudCwgZGJDb3VudClcblx0XHRcdFx0XHRcdFx0XHRpZiAoZmluaXNoRGJDb3VudCA9PSBkYkNvdW50KSB7XG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLmxvYWRFbmQoKTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XG5cdFx0XHRcdFx0XHRcdGNvbnN0IGRiID0gbi5hZGRDb21wb25lbnQoZHJhZ29uQm9uZXMuQXJtYXR1cmVEaXNwbGF5KTtcblxuXHRcdFx0XHRcdFx0XHRsb2FkRHJhZ29uQm9uZXMoZGIsIHtcblx0XHRcdFx0XHRcdFx0XHR0ZXg6IGJsb2NrLnRleFBuZ0RhdGEudXJsLCBcblx0XHRcdFx0XHRcdFx0XHRhdGxhczogYmxvY2sudGV4SnNvbkRhdGEudXJsLFxuXHRcdFx0XHRcdFx0XHRcdHNrZTogYmxvY2suc2tlSnNvbkRhdGEudXJsLFxuXHRcdFx0XHRcdFx0XHR9KS50aGVuKCh7d2lkdGgsIGhlaWdodH0pID0+IHtcblx0XHRcdFx0XHRcdFx0XHRuLndpZHRoID0gd2lkdGg7XG5cdFx0XHRcdFx0XHRcdFx0bi5oZWlnaHQgPSBoZWlnaHQ7XHRcblx0XHRcdFx0XHRcdFx0XHRuLmFjdGl2ZSA9IHRydWU7XG5cdFx0XHRcdFx0XHRcdFx0ZGIucGxheUFuaW1hdGlvbignbnVsbCcsIDApO1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMuX2FsbEFuaW1hdGlvbk5vZGVzLnB1c2gobik7XG5cdFx0XHRcdFx0XHRcdFx0ZmluaXNoRGJDb3VudCsrO1xuXHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKGZpbmlzaERiQ291bnQsIGRiQ291bnQpXG5cdFx0XHRcdFx0XHRcdFx0aWYgKGZpbmlzaERiQ291bnQgPT0gZGJDb3VudCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5sb2FkRW5kKCk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9KS5jYXRjaCgoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0ZmluaXNoRGJDb3VudCsrO1xuXHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKGZpbmlzaERiQ291bnQsIGRiQ291bnQpXG5cdFx0XHRcdFx0XHRcdFx0aWYgKGZpbmlzaERiQ291bnQgPT0gZGJDb3VudCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5sb2FkRW5kKCk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XG5cblx0XHRcdFx0XHRcdGlmIChibG9jay5nSWR4ID09ICcwJykge1xuXHRcdFx0XHRcdFx0XHRjb25zdCByZWN0SW5mbyA9IHtcblx0XHRcdFx0XHRcdFx0XHRub2RlOiBuLFxuXHRcdFx0XHRcdFx0XHRcdGF1ZGlvX3VybDogYmxvY2suYXVkaW9fdXJsICxcblx0XHRcdFx0XHRcdFx0XHRyZWN0OiB7XG5cdFx0XHRcdFx0XHRcdFx0XHR4OiBibG9jay5yZWN0LnggLyBiYXNlUmVjdC53aWR0aCxcblx0XHRcdFx0XHRcdFx0XHRcdHk6IGJsb2NrLnJlY3QueSAvIGJhc2VSZWN0LmhlaWdodCxcblx0XHRcdFx0XHRcdFx0XHRcdHdpZHRoOiBibG9jay5yZWN0LndpZHRoIC8gYmFzZVJlY3Qud2lkdGgsXG5cdFx0XHRcdFx0XHRcdFx0XHRoZWlnaHQ6IGJsb2NrLnJlY3QuaGVpZ2h0IC8gYmFzZVJlY3QuaGVpZ2h0LFxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRcdFx0dGhpcy5fZmlndXJlUG9pbnRSZWN0QXJyYXkucHVzaChyZWN0SW5mbyk7XG5cblx0XHRcdFx0XHRcdFx0Ly8gdGhpcy5hZGRSZWN0Tm9kZUxpc3RlbmVyKGJsb2NrKTtcblx0XHRcblx0XHRcdFx0XHRcdFx0aWYgKGJsb2NrLmxhYmVsVGV4dCkge1xuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IGsgPSArYmxvY2subGFiZWxUZXh0ICogMTAwMDtcblx0XHRcdFx0XHRcdFx0XHRpZighaXNOYU4oaykpIHtcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuX2hpbnRzTm9kZUxpc3QucHVzaCh7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdG5vZGU6IG4sXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGFmdGVyOiBrXG5cdFx0XHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdFx0XG5cdFx0XHQvLyBjb25zb2xlLmxvZyh0aGlzLmRhdGEpO1xuXHRcdFx0Y29uc29sZS5sb2coJ3Jlc291cmNlIHBlcmxvYWQgZmluaXNoJyk7XG5cbi8vIDw8PDw8PDwgSEVBRFxuLy8gPT09PT09PVxuLy8gXHRcdFx0aWYgKHdpbmRvdyAmJiB3aW5kb3dbXCJhaXJcIl0pIHtcbi8vIFx0XHRcdFx0Ly8gY2MuZmluZCgnQ2FudmFzJykub3BhY2l0eSA9IDA7XG4vLyBcdFx0XHRcdHdpbmRvdy5haXIub25Db3Vyc2VJblNjcmVlbiA9IChuZXh0KSA9PiB7XG4vLyBcdFx0XHRcdFx0Ly8gY2MuZmluZCgnQ2FudmFzJykub3BhY2l0eSA9IDI1NTtcbi8vIFx0XHRcdFx0XHR0aGlzLmxvYWRFbmQoKTtcbi8vIFx0XHRcdFx0XHRuZXh0KCk7XG4vLyBcdFx0XHRcdH1cbi8vIFx0XHRcdFx0d2luZG93LmFpci5oaWRlQWlyQ2xhc3NMb2FkaW5nKCk7XG4vLyBcdFx0XHR9IGVsc2Uge1xuLy8gXHRcdFx0XHR0aGlzLmxvYWRFbmQoKTtcbi8vIFx0XHRcdH1cbi8vID4+Pj4+Pj4gMmQ0NjFlMTkxMDU3MWJjZmM2YWQ0ZGM5M2MyY2VkYWZjMjA5MjNlYVxuXG5cdFx0XHRjYy5kZWJ1Zy5zZXREaXNwbGF5U3RhdHMoZmFsc2UpO1xuXHRcdH0pO1xuXHR9LFxuXG5cblx0bG9hZEVuZCgpIHtcblx0XHRpZiAod2luZG93ICYmIHdpbmRvd1tcImFpclwiXSAmJiB3aW5kb3dbXCJhaXJcIl0uaGlkZUFpckNsYXNzTG9hZGluZykge1xuXHRcdFx0d2luZG93W1wiYWlyXCJdLmhpZGVBaXJDbGFzc0xvYWRpbmcoKTtcblx0XHR9XG5cdFx0dGhpcy5pbml0RGF0YSgpO1xuXHRcdC8vIHRoaXMuaW5pdEF1ZGlvKCk7XG5cdFx0Ly8gdGhpcy5pbml0VmlldygpO1xuXHRcdHRoaXMuaW5pdEJnKCk7XG5cdFx0Ly8gdGhpcy5pbml0TGlzdGVuZXIoKTtcblx0XHR0aGlzLmRlYnVnR3JhcGhpY3MoKTtcblx0XHR0aGlzLmNyZWF0ZVN0YXRlTWFjaGluZSgpO1xuXHR9LFxuXG5cdF9jYW50b3VjaDogbnVsbCxcblx0aW5pdERhdGEoKSB7XG5cdFx0Ly8g5omA5pyJ5YWo5bGA5Y+Y6YePIOm7mOiupOmDveaYr251bGwgXG5cdFx0dGhpcy5fY2FudG91Y2ggPSB0cnVlO1xuXHR9LFxuXG5cdC8vIGF1ZGlvQnRuOiBudWxsLFxuXHQvLyBpbml0QXVkaW8oKSB7XG5cdC8vIFx0Y29uc3QgYXVkaW9Ob2RlID0gY2MuZmluZCgnQ2FudmFzL3Jlcy9hdWRpbycpO1xuXG5cdC8vIFx0Y29uc3QgZ2V0QXVkaW9CeVJlc05hbWUgPSAocmVzTmFtZSkgPT4ge1xuXHQvLyBcdFx0cmV0dXJuIGF1ZGlvTm9kZS5nZXRDaGlsZEJ5TmFtZShyZXNOYW1lKS5nZXRDb21wb25lbnQoY2MuQXVkaW9Tb3VyY2UpO1xuXHQvLyBcdH1cblxuXHQvLyBcdHRoaXMuYXVkaW9CdG4gPSBnZXRBdWRpb0J5UmVzTmFtZSgnYnRuJyk7XG5cblx0Ly8gfSxcblxuXG5cdC8vIGluaXRWaWV3KCkge1xuXG5cdC8vIFx0Ly8gdGhpcy5pbml0QmcoKTtcblx0Ly8gXHQvLyB0aGlzLmluaXRQaWMoKTtcblx0Ly8gXHQvLyB0aGlzLmluaXRCdG4oKTtcblx0Ly8gXHR0aGlzLmluaXRJY29uKCk7XG5cdC8vIH0sXG5cblx0YWRkUmVjdE5vZGVMaXN0ZW5lcihkYXRhKSB7XG5cblxuXHRcdGNvbnN0IGJnID0gY2MuZmluZChgQ2FudmFzL2ZyYW1lLWJvcmRlci9ncm91bmQvYmdgKS5wYXJlbnQ7XG5cblx0XHRjb25zdCByYXRlID0gKGJnLnNjYWxlICogYmcud2lkdGgpIC8gdGhpcy5kYXRhLmJnSXRlbS5yZWN0LndpZHRoO1xuXG5cdFx0Y29uc3QgcmVjdE5vZGUgPSBuZXcgY2MuTm9kZSgpO1xuXHRcdHJlY3ROb2RlLm5hbWUgPSAncmVjdCcgKyBkYXRhLmluZGV4O1xuXHRcdGJnLmFkZENoaWxkKHJlY3ROb2RlLCAyMCk7XG5cblxuXHRcdGNvbnN0IGN0eCA9IHJlY3ROb2RlLmFkZENvbXBvbmVudChjYy5HcmFwaGljcyk7XG5cdFx0Ly8g57qi6Imy55+p5b2iXG5cdFx0Y3R4LmxpbmVXaWR0aCA9IDQ7XG5cdFx0Y3R4LnN0cm9rZUNvbG9yID0gY2MuQ29sb3IuQkxBQ0s7XG5cdFx0Y3R4LmZpbGxDb2xvciA9IGNjLkNvbG9yLldISVRFLnNldEEoMTAwKTtcblxuXHRcdGNvbnN0IHNjYWxlID0gcmF0ZSAvIGJnLnNjYWxlWTtcblxuXHRcdGNvbnNvbGUubG9nKCdzY2FsZX4gOiAnLCBzY2FsZSlcblxuXHRcdHJlY3ROb2RlLndpZHRoID0gZGF0YS5yZWN0LndpZHRoICogc2NhbGU7XG5cdFx0cmVjdE5vZGUuaGVpZ2h0ID0gZGF0YS5yZWN0LmhlaWdodCAqIHNjYWxlO1xuXHRcdHJlY3ROb2RlLnggPSAtYmcud2lkdGggLyAyICsgZGF0YS5yZWN0LnggKiBzY2FsZSArIGJnLng7XG5cdFx0cmVjdE5vZGUueSA9IGJnLmhlaWdodCAvIDIgLSBkYXRhLnJlY3QuaGVpZ2h0ICogc2NhbGUgLSBkYXRhLnJlY3QueSAqIHNjYWxlICsgYmcueTtcblxuXHRcdHJlY3ROb2RlLmFuY2hvclggPSByZWN0Tm9kZS5hbmNob3JZID0gMDtcblxuXHRcdGNvbnNvbGUubG9nKCdkYXRhOiAnLCBkYXRhKTtcblx0XHRjb25zb2xlLmxvZygncmVjdE5vZGU6ICcsIHJlY3ROb2RlKTtcblxuXG5cdFx0Ly8gaWYgKHBhZ2VEYXRhLmJnSXRlbS5pc1Nob3dEZWJ1Z0xpbmUpIHtcblx0XHRcdGN0eC5yZWN0KDAsIDAsIHJlY3ROb2RlLndpZHRoLCByZWN0Tm9kZS5oZWlnaHQpO1xuXHRcdFx0Ly8gY3R4LmZpbGxSZWN0KDAsIDAsIDIwMCwgMjAwKTtcblx0XHQvLyB9XG5cdFx0Y3R4LnN0cm9rZSgpO1xuXHRcdGN0eC5maWxsKCk7XG5cblx0XHRyZWN0Tm9kZS5hZGRDb21wb25lbnQoY2MuQnV0dG9uKTtcblx0XHRyZWN0Tm9kZS5vbihcImNsaWNrXCIsICgpID0+IHtcblx0XHRcdGNvbnNvbGUubG9nKFwiIGluIHJlY3ROb2RlIGNsaWNrXCIpO1xuXG5cblx0XHRcdGNvbnN0IF94ID0gcmVjdE5vZGUueCAvIGJnLndpZHRoO1xuXHRcdFx0Y29uc3QgX3kgPSByZWN0Tm9kZS55IC8gYmcuaGVpZ2h0O1xuXHRcdFx0Y29uc3QgX3cgPSByZWN0Tm9kZS53aWR0aCAvIGJnLndpZHRoO1xuXHRcdFx0Y29uc3QgX2ggPSByZWN0Tm9kZS5oZWlnaHQgLyBiZy5oZWlnaHQ7XG5cblx0XHRcdGNvbnN0IHBvcyA9IHtcblx0XHRcdFx0eDogX3ggKyBfdyAvIDIgKyAwLjUsXG5cdFx0XHRcdHk6IC0oX3kgKyBfaCAvIDIgLSAwLjUpXG5cdFx0XHR9XG5cdFx0XHR0aGlzLl9sYXN0RmluZ2VyUG9zaXRpb24gPSB7XG5cdFx0XHRcdHBvczogcG9zLFxuXHRcdFx0XHRkaXJ0eTogdHJ1ZVxuXHRcdFx0fTtcblxuXHRcdH0pXG5cblx0fSxcblxuXHRpbml0QmcoKSB7XG5cdFx0Y29uc3QgYmdOb2RlID0gY2MuZmluZCgnQ2FudmFzL2JnJyk7XG5cdFx0YmdOb2RlLnNjYWxlID0gdGhpcy5fbWFwU2NhbGVNYXg7XG5cdFx0Y29uc29sZS5sb2coJ3RoaXMuX21hcFNjYWxlTWF4JywgdGhpcy5fbWFwU2NhbGVNYXgpO1xuXHR9LFxuXG5cdFxuXHRcblxuXHQvKmluaXRCdG4oKSB7XG5cblx0XHR0aGlzLmN1clBhZ2UgPSAwO1xuXHRcdGNvbnN0IGJvdHRvbVBhcnQgPSBjYy5maW5kKCdDYW52YXMvYm90dG9tUGFydCcpO1xuXHRcdGJvdHRvbVBhcnQuekluZGV4ID0gNTsgLy8g5o+Q6auY5bGC57qnXG5cblx0XHRib3R0b21QYXJ0LnggPSBib3R0b21QYXJ0LnBhcmVudC53aWR0aCAvIDI7XG5cdFx0Ym90dG9tUGFydC55ID0gLWJvdHRvbVBhcnQucGFyZW50LmhlaWdodCAvIDI7XG5cblx0XHRjb25zdCBsZWZ0QnRuTm9kZSA9IGJvdHRvbVBhcnQuZ2V0Q2hpbGRCeU5hbWUoJ2J0bl9sZWZ0Jyk7XG5cdFx0Ly/oioLngrnkuK3mt7vliqDkuoZidXR0b27nu4Tku7Yg5YiZ5Y+v5Lul5re75YqgY2xpY2vkuovku7bnm5HlkKxcblx0XHRsZWZ0QnRuTm9kZS5vbignY2xpY2snLCAoKSA9PiB7XG5cdFx0XHRpZiAoIXRoaXMuX2NhbnRvdWNoKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdGlmICh0aGlzLmN1clBhZ2UgPT0gMCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHR0aGlzLmN1clBhZ2UgPSAwXG5cdFx0XHR0aGlzLmxlZnRNb3ZlKCk7XG5cblx0XHRcdC8vIOa4uOaIj+e7k+adn+aXtumcgOimgeiwg+eUqOi/meS4quaWueazlemAmuefpeezu+e7n+S9nOS4muWujOaIkFxuXHRcdFx0b25Ib21ld29ya0ZpbmlzaCgpO1xuXG5cdFx0XHRjYy5hdWRpb0VuZ2luZS5wbGF5KHRoaXMuYXVkaW9CdG4uY2xpcCwgZmFsc2UsIDAuOClcblx0XHR9KVxuXG5cdFx0Y29uc3QgcmlnaHRCdG5Ob2RlID0gYm90dG9tUGFydC5nZXRDaGlsZEJ5TmFtZSgnYnRuX3JpZ2h0Jyk7XG5cdFx0Ly/oioLngrnkuK3mt7vliqDkuoZidXR0b27nu4Tku7Yg5YiZ5Y+v5Lul5re75YqgY2xpY2vkuovku7bnm5HlkKxcblx0XHRyaWdodEJ0bk5vZGUub24oJ2NsaWNrJywgKCkgPT4ge1xuXHRcdFx0aWYgKCF0aGlzLl9jYW50b3VjaCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHRpZiAodGhpcy5jdXJQYWdlID09IDEpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHR0aGlzLmN1clBhZ2UgPSAxXG5cdFx0XHR0aGlzLnJpZ2h0TW92ZSgpO1xuXG5cdFx0XHRjYy5hdWRpb0VuZ2luZS5wbGF5KHRoaXMuYXVkaW9CdG4uY2xpcCwgZmFsc2UsIDAuNSlcblx0XHR9KVxuXHR9LCovXG5cblxuXG5cblx0Ly8gdXBkYXRlIChkdCkge30sXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXHRfdGltZW91dElkczogbnVsbCxcblx0X2ludGVydmFsSWRzOiBudWxsLFxuXHQvLyDnlJ/lkb3lkajmnJ9cblx0b25EZXN0cm95KCkge1xuXHRcdGNvbnNvbGUubG9nKCdvcDE1IG9uRGVzdHJveScpO1xuXHRcdHRoaXMuX3RpbWVvdXRJZHMuZm9yRWFjaChpZCA9PiB7XG5cdFx0XHRjbGVhclRpbWVvdXQoaWQpO1xuXHRcdH0pO1xuXHRcdHRoaXMuX2ludGVydmFsSWRzLmZvckVhY2goaWQgPT4ge1xuXHRcdFx0Y2xlYXJJbnRlcnZhbChpZCk7XG5cdFx0fSk7XG5cdFx0dGhpcy5nYW1lTWFjaGluZVNlcnZpY2Uuc3RvcENoaWxkKCk7XG5cdFx0dGhpcy5nYW1lTWFjaGluZVNlcnZpY2Uuc3RvcCgpO1xuXHRcdGlmKHdpbmRvdy5jb3Vyc2V3YXJlICYmIHdpbmRvdy5jb3Vyc2V3YXJlLmNsb3NlT3Ntb0ZpbmdlclJlYWQpIHtcblx0XHRcdGlmICh0aGlzLmlzT3BlbmVkT3Ntb0ZpbmdlclJlYWQpIHtcblx0XHRcdFx0d2luZG93LmNvdXJzZXdhcmUuY2xvc2VPc21vRmluZ2VyUmVhZCgpXG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXG5cblxuXG5cbn0pO1xuIl19 \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/OP15/scene/OP15.js b/temp/quick-scripts/src/assets/OP15/scene/OP15.js index ef4a102..a444447 100644 --- a/temp/quick-scripts/src/assets/OP15/scene/OP15.js +++ b/temp/quick-scripts/src/assets/OP15/scene/OP15.js @@ -206,8 +206,6 @@ cc.Class({ console.log('[answer] thinking and playing'); // check every second var id = setInterval(function () { - console.log("aaaaaa"); - if (!_this._lastFingerPosition.dirty) { return; } @@ -227,7 +225,7 @@ cc.Class({ } else { callback('WRONG'); } - }, 300); + }, 100); _this._intervalIds.push(id); // Perform cleanup @@ -258,8 +256,17 @@ cc.Class({ var an = context.questions[context.questionIndex].node; console.log('in right ' + typeof an); an.active = true; - var dragonDisplay = an.getComponent(dragonBones.ArmatureDisplay); - dragonDisplay.playAnimation('normal', 0); + + if (an.isSpine) { + var skeleton = an.getComponent(sp.Skeleton); + skeleton.setToSetupPose(); + setTimeout(function () { + skeleton.setAnimation(0, 'normal', true); + }, 1); + } else { + var dragonDisplay = an.getComponent(dragonBones.ArmatureDisplay); + dragonDisplay.playAnimation('normal', 0); + } var ddLogoCat = _this.logoCat.getComponent(dragonBones.ArmatureDisplay); @@ -610,8 +617,6 @@ cc.Class({ this.isDebug = false; }, checkInRegion: function checkInRegion(r) { - console.log('r~~~: ', r); - if (!this._lastFingerPosition && !this._lastFingerPosition.pos) { return null; } @@ -623,6 +628,8 @@ cc.Class({ x: 0, y: 0 }; + console.log('~p: ', p); + console.log('~r: ', r); var w = p.x > r.x && p.x < r.x + r.width; var h = p.y > r.y && p.y < r.y + r.height; return w && h; @@ -645,100 +652,567 @@ cc.Class({ }, getDefaultData: function getDefaultData() { return { - "begin_audio": "http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3", - "begin_sep_time": 1, - "guide_audio": "http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3", - "playing_audio": "http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3", - "right_audio": "http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3", - "wrong_audio": "http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3", - "wrong_audio1": "http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3", - "wrong_audio2": "http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3", - "end_audio": "http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3", + "begin_audio": "https://teach.cdn.ireadabc.com/9be46c9adb540ed8a60763f1e657ccb7.mp3", + "begin_sep_time": 66, + "guide_audio": "https://teach.cdn.ireadabc.com/9523c8ed45faee686363dd157b0d7426.mp3", + "playing_audio": "https://teach.cdn.ireadabc.com/d6a953052a6f80549730cb4307c55719.mp3", + "right_audio": "https://teach.cdn.ireadabc.com/43791fc418e666df5e9ec1b7bf936409.mp3", + "wrong_audio": "https://teach.cdn.ireadabc.com/7dd85f025a132c2eef8daee38d900287.mp3", + "wrong_audio1": "https://teach.cdn.ireadabc.com/a76afb06af0799bf538e38f9f80a2261.mp3", + "wrong_audio2": "https://teach.cdn.ireadabc.com/daee88b6f2eadd78b60436eedffcae08.mp3", + "end_audio": "https://teach.cdn.ireadabc.com/9c1e87b3c184b06e14e44bb058b9804e.mp3", "bgItem": { - "url": "http://staging-teach.cdn.ireadabc.com/84ec6edc20bceaaa9dbe824092b6860d.png", + "url": "https://teach.cdn.ireadabc.com/16b6dacd8e6c1ce6da16f500a66b366b.jpg", "rect": { - "x": 736.95, + "x": 319.68, "y": 0, - "width": 599.09, - "height": 775 + "width": 257.64, + "height": 342 } }, "hotZoneItemArr": [{ - "id": "1659333645573", + "id": "1650544807877", "index": 0, - "audio_url": "http://staging-teach.cdn.ireadabc.com/5a1a2670845bfe76662e86d9a3a69f81.mp3", - "itemType": "rect", - "fontScale": 1.61953125, + "itemType": "pic", + "fontScale": 0.70078125, "imgScale": 1, "imgSizeW": 0, "imgSizeH": 0, - "mapScale": 1.61953125, + "mapScale": 0.70078125, "dragDot": { - "x": 1036.5, - "y": 387.5 + "x": 448.5, + "y": 176.65207877461702 }, "gIdx": "1", - "labelText": "1", - "posX": 887.5, - "posY": 165.5, "skeJsonData": { - "url": "http://staging-teach.cdn.ireadabc.com/133a1f60719ed26247e35dc022d82862.json", - "name": "spineboy-pro.json" + "url": "https://teach.cdn.ireadabc.com/66c7c0847c33f7f95cb0035fe14c4405.json", + "name": "monkey_ske.json" }, "texJsonData": { - "url": "http://staging-teach.cdn.ireadabc.com/e0945b8265ea3b8053afb814c6b849d3.atlas", - "name": "spineboy-pro.atlas" + "url": "https://teach.cdn.ireadabc.com/98a8272cd2d97047b090ff10e948b978.json", + "name": "monkey_tex.json" }, "texPngData": { - "url": "http://staging-teach.cdn.ireadabc.com/517553f50224915148f9efc5b7556798.png", - "name": "spineboy-pro.png" + "url": "https://teach.cdn.ireadabc.com/c35ced408ad68a52c4ec5375373d3627.png", + "name": "monkey_tex.png" }, - "animType": "spine", "rect": { - "x": 48.05, - "y": 65.5, - "width": 205, - "height": 200 + "x": 128.83, + "y": 171, + "width": 0, + "height": 0 } }, { - "id": "1659334098930", + "id": "1650546079000", "index": 1, - "audio_url": "http://staging-teach.cdn.ireadabc.com/16eb06a6beb9e4fa77c9b5d2d643ab29.mp3", + "audio_url": "https://teach.cdn.ireadabc.com/f9edc84a669688c5abddd55e2aab015d.mp3", "itemType": "rect", - "fontScale": 1.61953125, + "fontScale": 0.70078125, "imgScale": 1, "imgSizeW": 0, "imgSizeH": 0, - "mapScale": 1.61953125, + "mapScale": 0.70078125, "dragDot": { - "x": 1036.5, - "y": 387.5 + "x": 448.5, + "y": 170.54984583761566 }, "gIdx": "0", - "labelText": "1", - "posX": 1212.5, - "posY": 643.5, + "labelText": "21.3", + "posX": 692.4127500193598, + "posY": 218.14695959185556, "skeJsonData": { - "url": "http://staging-teach.cdn.ireadabc.com/679fed26daa464819d553de6331b3552.json", - "name": "alien-pro.json" + "url": "https://teach.cdn.ireadabc.com/e3c67a25dd3bb34fe113e126e6e1cc81.json", + "name": "ox_ske.json" }, "texJsonData": { - "url": "http://staging-teach.cdn.ireadabc.com/65d8214c6b5c5d0496e17adb0408276a.atlas", - "name": "alien-pro.atlas" + "url": "https://teach.cdn.ireadabc.com/81d487bf31d3a4d0f25f44c184ba9233.json", + "name": "ox_tex.json" }, "texPngData": { - "url": "http://staging-teach.cdn.ireadabc.com/a319b372899239325b90bb4ec07b4970.png", - "name": "alien-pro.png" + "url": "https://teach.cdn.ireadabc.com/e199392b52a735f6e37a6815ec3bb10e.png", + "name": "ox_tex.png" }, - "animType": "spine", "rect": { - "x": 375.56, - "y": 543.5, - "width": 200, - "height": 200 + "x": 159.34, + "y": 138.66, + "width": 38.83, + "height": 38.83 + } + }, { + "id": "1650546232189", + "index": 2, + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "1", + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/0a3ea93c62ff4087859ed587020c53b5.json", + "name": "car_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/6000e4fbbb95f545afa5456c64d8c7d1.json", + "name": "car_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/75e9972c15d2a67deedf60d448fd4e69.png", + "name": "car_tex.png" + }, + "rect": { + "x": 36.4, + "y": 78.56, + "width": 184.87, + "height": 184.87 + } + }, { + "id": "1650546321127", + "index": 3, + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "1", + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/d4c1e1abcf3d8f5415747fd2599b8a8c.json", + "name": "Chair_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/1d7254eb7fa3008e8178347bb944cdcb.json", + "name": "Chair_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/48e85e8ff384eed72dfe865fc981e18c.png", + "name": "Chair_tex.png" + }, + "rect": { + "x": 36.4, + "y": 78.56, + "width": 184.87, + "height": 184.87 + } + }, { + "id": "1650546335240", + "index": 4, + "audio_url": "https://teach.cdn.ireadabc.com/6182d46bad09fccb8934217d33557204.mp3", + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "0", + "labelText": "53", + "posX": 452.5, + "posY": 129, + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/b462d80c21aa75995dd99f0f43ccf1e6.json", + "name": "quilt_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/866c9e2987870947fc63bce108ef157a.json", + "name": "quilt_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/d952c37f40c3cf07e024edfd4416423e.png", + "name": "quilt_tex.png" + }, + "rect": { + "x": 71.99, + "y": 100.75, + "width": 50.83, + "height": 36.97 + } + }, { + "id": "1650546644333", + "index": 5, + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "1", + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/6b8a1a7b0fd23686ea60465279cd4da0.json", + "name": "robot_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/31a74ed95fe48adab00702675811c3a8.json", + "name": "robot_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/e57052537d89356b0a79d8cb77980219.png", + "name": "robot_tex.png" + }, + "rect": { + "x": 36.4, + "y": 78.56, + "width": 184.87, + "height": 184.87 + } + }, { + "id": "1650546658697", + "index": 6, + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "1", + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/bf3616060460439eeb3fd5227370e15a.json", + "name": "panda_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/2dafeb25c973c910035ff7ed1a6a6334.json", + "name": "panda_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/75d90b05345fa470285ac488cb205cfd.png", + "name": "panda_tex.png" + }, + "rect": { + "x": 36.4, + "y": 78.56, + "width": 184.87, + "height": 184.87 + } + }, { + "id": "1650546672448", + "index": 7, + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "1", + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/5feff811b0117dd8e67973072e60d310.json", + "name": "queen_1_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/bb5856b92b09c5fe7a1da00bb68134ca.json", + "name": "queen_1_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/f4e5a138b086ef3dcfa57432543b66e9.png", + "name": "queen_1_tex.png" + }, + "animType": "dragonBone", + "rect": { + "x": 36.4, + "y": 78.56, + "width": 184.87, + "height": 184.87 + } + }, { + "id": "1650546687069", + "index": 8, + "audio_url": "https://teach.cdn.ireadabc.com/301858df7b07e661426a006acb26059c.mp3", + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "0", + "labelText": "42.5", + "posX": 512.3883524629834, + "posY": 259.83617125849, + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/f3a8efcd1850ee8a6cee89a18e86dc4a.json", + "name": "milk_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/73b05f19d419bd3ac17c2b92dab88423.json", + "name": "milk_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/e38375da46f85a23202d5cbc812d62e4.png", + "name": "milk_tex.png" + }, + "rect": { + "x": 37.72, + "y": 168.1, + "width": 21.17, + "height": 40.34 + } + }, { + "id": "1650547060490", + "index": 9, + "audio_url": "https://teach.cdn.ireadabc.com/05e5b29aeffa4ef94bcc5b23167aec90.mp3", + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "0", + "labelText": "47.7", + "posX": 483.22135734006736, + "posY": 245.38039407076505, + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/99a6e6d9361eca7e51ed34ca2e0fd017.json", + "name": "bird_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/6a379ddbe6df1806368c43c8ee82332d.json", + "name": "bird_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/cf04c63104d89511902578944061f980.png", + "name": "bird_tex.png" + }, + "rect": { + "x": 17.91, + "y": 140.83, + "width": 18.52, + "height": 73.95 + } + }, { + "id": "1650547373869", + "index": 10, + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "1", + "labelText": "60", + "posX": 420.5, + "posY": 295, + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/7ebc28f3f339b16ca48d20f2a3eb44c1.json", + "name": "alligator_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/b04e8206fd217bd22dcdac1008393317.json", + "name": "alligator_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/b3990d94612bd3d6e25cf200f85e4334.png", + "name": "alligator_tex.png" + }, + "rect": { + "x": 16.06, + "y": 229.24, + "width": 103.52, + "height": 86.89 + } + }, { + "id": "1650547482398", + "index": 11, + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "1", + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/a19f2ed7c297c70c639e54e969d64593.json", + "name": "rabbit_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/4b4f8189cf79fadd7e6533ad84db96be.json", + "name": "rabbit_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/8f953c861eac94e4e22a8e4ec3eb56b5.png", + "name": "rabbit_tex.png" + }, + "rect": { + "x": 36.4, + "y": 78.56, + "width": 184.87, + "height": 184.87 + } + }, { + "id": "1650547496232", + "index": 12, + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "1", + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/89e0fc6085c294866142803b4ff267ba.json", + "name": "King_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/d6cfd2d9cd2cd9aff09ab7f03e287421.json", + "name": "King_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/8c02c3561a2eea0423cb1102200e76f9.png", + "name": "King_tex.png" + }, + "rect": { + "x": 36.4, + "y": 78.56, + "width": 184.87, + "height": 184.87 + } + }, { + "id": "1650547510648", + "index": 13, + "audio_url": "https://teach.cdn.ireadabc.com/717ee9713b18d32d38ee089c0abc85ea.mp3", + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "0", + "labelText": "10.2", + "posX": 641.6680134951944, + "posY": 288.93672702541255, + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/3b7113ebdedcae54be6d0b9633875b88.json", + "name": "net_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/fc810762f1f2025585e722e43e94137b.json", + "name": "net_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/5c90820da4f559280fee4579e8db2dbc.png", + "name": "net_tex.png" + }, + "rect": { + "x": 123.03, + "y": 183.02, + "width": 37.9, + "height": 52.68 + } + }, { + "id": "1650547555018", + "index": 14, + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "1", + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/0a5c8df5a23aca7a7540b87340c7608f.json", + "name": "ostrich_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/2478573c91d1a83fa038e7f6a9db8a85.json", + "name": "ostrich_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/4619ace67e5770e1fd7fc3ff76e7263e.png", + "name": "ostrich_tex.png" + }, + "rect": { + "x": 36.4, + "y": 78.56, + "width": 184.87, + "height": 184.87 + } + }, { + "id": "1650547573305", + "index": 15, + "audio_url": "https://teach.cdn.ireadabc.com/b7bc161c3a3ee143a53058691abf4fa9.mp3", + "itemType": "rect", + "fontScale": 0.70078125, + "imgScale": 1, + "imgSizeW": 0, + "imgSizeH": 0, + "mapScale": 0.70078125, + "dragDot": { + "x": 448.5, + "y": 170.54984583761566 + }, + "gIdx": "0", + "labelText": "15.9", + "posX": 670.8119839772754, + "posY": 137.87940870201697, + "skeJsonData": { + "url": "https://teach.cdn.ireadabc.com/91e8ca03d1df89e4ec2404421d4c692f.json", + "name": "durazno_ske.json" + }, + "texJsonData": { + "url": "https://teach.cdn.ireadabc.com/32d259b0194370625f8fe94b1ddc0a85.json", + "name": "durazno_tex.json" + }, + "texPngData": { + "url": "https://teach.cdn.ireadabc.com/8eef56b20e221a36fce1d672199859ff.png", + "name": "durazno_tex.png" + }, + "rect": { + "x": 146.92, + "y": 83.73, + "width": 32.34, + "height": 32.34 } }] - }; // return defaultData; + }; // return {"begin_audio":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","begin_sep_time":1,"guide_audio":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","playing_audio":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","right_audio":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","wrong_audio":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","wrong_audio1":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","wrong_audio2":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","end_audio":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","bgItem":{"url":"http://staging-teach.cdn.ireadabc.com/84ec6edc20bceaaa9dbe824092b6860d.png","rect":{"x":736.95,"y":0,"width":599.09,"height":775}},"hotZoneItemArr":[{"id":"1659333645573","index":0,"audio_url":"http://staging-teach.cdn.ireadabc.com/5a1a2670845bfe76662e86d9a3a69f81.mp3","itemType":"rect","fontScale":1.61953125,"imgScale":1,"imgSizeW":0,"imgSizeH":0,"mapScale":1.61953125,"dragDot":{"x":1036.5,"y":387.5},"gIdx":"1","labelText":"1","posX":887.5,"posY":165.5,"skeJsonData":{"url":"http://staging-teach.cdn.ireadabc.com/133a1f60719ed26247e35dc022d82862.json","name":"spineboy-pro.json"},"texJsonData":{"url":"http://staging-teach.cdn.ireadabc.com/e0945b8265ea3b8053afb814c6b849d3.atlas","name":"spineboy-pro.atlas"},"texPngData":{"url":"http://staging-teach.cdn.ireadabc.com/517553f50224915148f9efc5b7556798.png","name":"spineboy-pro.png"},"animType":"spine","rect":{"x":48.05,"y":65.5,"width":205,"height":200}},{"id":"1659334098930","index":1,"audio_url":"http://staging-teach.cdn.ireadabc.com/16eb06a6beb9e4fa77c9b5d2d643ab29.mp3","itemType":"rect","fontScale":1.61953125,"imgScale":1,"imgSizeW":0,"imgSizeH":0,"mapScale":1.61953125,"dragDot":{"x":1036.5,"y":387.5},"gIdx":"0","labelText":"1","posX":1212.5,"posY":643.5,"skeJsonData":{"url":"http://staging-teach.cdn.ireadabc.com/679fed26daa464819d553de6331b3552.json","name":"alien-pro.json"},"texJsonData":{"url":"http://staging-teach.cdn.ireadabc.com/65d8214c6b5c5d0496e17adb0408276a.atlas","name":"alien-pro.atlas"},"texPngData":{"url":"http://staging-teach.cdn.ireadabc.com/a319b372899239325b90bb4ec07b4970.png","name":"alien-pro.png"},"animType":"spine","rect":{"x":375.56,"y":543.5,"width":200,"height":200}}]} + // return defaultData; }, preloadItem: function preloadItem() { this.addPreloadImage(); @@ -986,8 +1460,9 @@ cc.Class({ if (_block.gIdx == '0' || _block.gIdx == '1') { (function () { - var n = new cc.Node(); - n.scale = 0.25; + var n = new cc.Node(); // n.scale = 0.25; + + n.scale = ground.width / groundBg.width; n.parent = ground; n.active = false; @@ -1005,8 +1480,7 @@ cc.Class({ n.height = height; n.active = true; // db.playAnimation('null', 0); // skeleton.setToSetupPose(); - - skeleton.setAnimation(0, 'enlarge', true); + // skeleton.setAnimation(0, 'enlarge', true); _this4._allAnimationNodes.push(n); @@ -1138,27 +1612,54 @@ cc.Class({ // this.initIcon(); // }, addRectNodeListener: function addRectNodeListener(data) { - var bg = cc.find("Canvas/frame-border/ground/bg"); + var _this5 = this; + + var bg = cc.find("Canvas/frame-border/ground/bg").parent; var rate = bg.scale * bg.width / this.data.bgItem.rect.width; var rectNode = new cc.Node(); rectNode.name = 'rect' + data.index; - bg.addChild(rectNode); + bg.addChild(rectNode, 20); var ctx = rectNode.addComponent(cc.Graphics); // 红色矩形 ctx.lineWidth = 4; ctx.strokeColor = cc.Color.BLACK; ctx.fillColor = cc.Color.WHITE.setA(100); var scale = rate / bg.scaleY; + console.log('scale~ : ', scale); rectNode.width = data.rect.width * scale; rectNode.height = data.rect.height * scale; - rectNode.x = -bg.width / 2 + data.rect.x * scale; - rectNode.y = bg.height / 2 - data.rect.height * scale - data.rect.y * scale; - rectNode.anchorX = rectNode.anchorY = 0; // if (pageData.bgItem.isShowDebugLine) { + rectNode.x = -bg.width / 2 + data.rect.x * scale + bg.x; + rectNode.y = bg.height / 2 - data.rect.height * scale - data.rect.y * scale + bg.y; + rectNode.anchorX = rectNode.anchorY = 0; + console.log('data: ', data); + console.log('rectNode: ', rectNode); // if (pageData.bgItem.isShowDebugLine) { - ctx.rect(0, 0, rectNode.width, rectNode.height); // } + ctx.rect(0, 0, rectNode.width, rectNode.height); // ctx.fillRect(0, 0, 200, 200); + // } ctx.stroke(); ctx.fill(); + rectNode.addComponent(cc.Button); + rectNode.on("click", function () { + console.log(" in rectNode click"); + + var _x = rectNode.x / bg.width; + + var _y = rectNode.y / bg.height; + + var _w = rectNode.width / bg.width; + + var _h = rectNode.height / bg.height; + + var pos = { + x: _x + _w / 2 + 0.5, + y: -(_y + _h / 2 - 0.5) + }; + _this5._lastFingerPosition = { + pos: pos, + dirty: true + }; + }); }, initBg: function initBg() { var bgNode = cc.find('Canvas/bg'); diff --git a/temp/quick-scripts/src/assets/OP15/scene/OP15.js.map b/temp/quick-scripts/src/assets/OP15/scene/OP15.js.map index af19a8f..7e4070b 100644 --- a/temp/quick-scripts/src/assets/OP15/scene/OP15.js.map +++ b/temp/quick-scripts/src/assets/OP15/scene/OP15.js.map @@ -1 +1 @@ -{"version":3,"sources":["assets/OP15/scene/OP15.js"],"names":["pure","actions","send","raise","sendParent","cc","Class","Component","properties","rightAudio","type","AudioClip","wrongAudio","logoCat","Node","playAni","idx","name","options","times","cb","callback","node","_figurePointRectArray","dragonDisplay","getComponent","dragonBones","ArmatureDisplay","state","playAnimation","onLoad","_timeoutIds","_intervalIds","initSceneData","initSize","window","ccc","_imageResList","_audioResList","_animaResList","_lastFingerPosition","_hintsNodeList","_allAnimationNodes","pos","dirty","_designSize","_frameSize","_mapScaleMin","_mapScaleMax","_cocosScale","screen_size","view","getFrameSize","width","height","design_size","Canvas","instance","designResolution","f","fitHeight","fitWidth","frameSize","getDesignResolutionSize","sx","winSize","sy","Math","min","max","createStateMachine","check","target","cond","ctx","evt","console","log","questionIndex","questionsCount","QuestionState","id","initial","states","hint","invoke","src","event","questionPlayTimes","Promise","resolve","reject","questions","audio_url","onDone","onError","answer","after","context","onReceive","setInterval","region","result","checkInRegion","rect","push","clearInterval","on","RIGHT","WRONG","right","an","active","ddLogoCat","once","EventObject","COMPLETE","wrong","maxQuestionTryTimes","wrongEffect","includes","data","isSpine","skeleton","sp","Skeleton","setToSetupPose","setTimeout","setAnimation","QuestionsArrayStatus","play","next","CHECK","length","begin","courseware","openOsmoFingerRead","isOpenedOsmoFingerRead","begin_audio","guide","guide_audio","playing","entry","assetManager","loadRemote","playing_audio","err","audioClip","audioEngine","playMusic","forEach","block","exit","stopMusic","NEXT","end","closeOsmoFingerRead","end_audio","i","t","k","_armatureKey","addEventListener","begin_sep_time","gameMachine","gameMachineService","onTransition","start","getData","bind","getDefaultData","JSON","parse","stringify","preloadItem","air","osmoFingerReadCallback","resultObj","finger_pos_in_page","p","x","y","debugPointer","isDebug","r","w","h","func","middleLayer","find","middleLayerComponent","addPreloadImage","addPreloadAudio","addPreloadAnima","preload","url","bgItem","hotZoneItemArr","q","gIdx","texPngData","pic_url","prepareAudioClip","key","wrong_audio","right_audio","wrong_audio1","wrong_audio2","boxDebugger","POINTER_NODE","parent","addComponent","Graphics","grap","clear","ground","baseW","baseH","px","py","pn","fillColor","color","circle","fill","stroke","debugGraphics","canvas","bgW","bgH","scaleX","scaleY","added","area","dn","lblNode","lbl","Label","string","skeJsonData","substring","g","b","rx","ry","rw","rh","fillRect","preloadArr","concat","loadAny","item","groundBg","baseRect","sf","gs","Sprite","spriteFrame","dbCount","finishDbCount","s1","imgSizeW","imgSizeH","spr","scale","n","animType","tex","atlas","texJsonData","ske","then","loadEnd","db","rectInfo","labelText","isNaN","debug","setDisplayStats","hideAirClassLoading","initData","initBg","_cantouch","addRectNodeListener","bg","rate","rectNode","index","addChild","lineWidth","strokeColor","Color","BLACK","WHITE","setA","anchorX","anchorY","bgNode","onDestroy","clearTimeout","stopChild","stop"],"mappings":"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","sourceRoot":"/","sourcesContent":["import { onHomeworkFinish, RandomInt, playAudioByUrl, loadDragonBones, getSpriteFrimeByUrl, loadSpine } from \"../script/util\";\nimport { defaultData } from \"../script/defaultData\";\nimport { assign, createMachine, interpret, actions, forwardTo, matchesState } from \"../script/xstate\";\nconst { pure , send, raise, sendParent } = actions;\n\n\ncc.Class({\n\n\textends: cc.Component,\n\n\tproperties: {\n\t\t/*ant: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},\n\t\tapple: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},\n\t\tbird: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},\n\t\tcar: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},\n\t\tcat: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},\n\t\tcow: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},\n\t\tduck: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},\n\t\tegg: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},\n\t\tfarmer: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},\n\t\tfish: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},\n\t\tgirl: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},\n\t\then: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},\n\t\thouse: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},*/\n\t\trightAudio: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.AudioClip,\n\t\t},\n\t\twrongAudio: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.AudioClip,\n\t\t},\n\t\tlogoCat: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node\n\t\t}\n\n\t},\n\n\tplayAni(idx, name, options) {\n\t\tconst times = (options && options.times) || 1;\n\t\tconst cb = (options && options.callback) || null;\n\t\t// const cat = cc.find(`Canvas/frame-border/ground/${node}`);\n\t\tconst node = this._figurePointRectArray[idx].node\n\t\tvar dragonDisplay = node.getComponent(dragonBones.ArmatureDisplay);\n\n\t\tconst state = dragonDisplay.playAnimation(name, times);\n\t\t// dragonDisplay.addEventListener(dragonBones.EventObject.COMPLETE, (event) => {\n\t\t// \t//TODO 这里写触å‘事件\n\t\t// \t//event.name为事件åç§°\n\t\t// \tconsole.log(event.name)\n\t\t// }, this);\n\t\t// animationDisplay.addEventListener(dragonBones.EventObject.COMPLETE, completeCallback);\n\t\treturn state;\n\t},\n\t// 生命周期 onLoad\n\tonLoad() {\n\t\tthis._timeoutIds = [];\n\t\tthis._intervalIds = [];\n\t\tthis.initSceneData();\n\t\tthis.initSize();\n\t\twindow.ccc = this;\n\t},\n\n\t_imageResList: null,\n\t_audioResList: null,\n\t_animaResList: null,\n\n\t_lastFingerPosition: null,\n\n\t_hintsNodeList : null,\n\t_figurePointRectArray: null,\n\n\t_allAnimationNodes: null,\n\n\tinitSceneData() {\n\t\tthis._imageResList = [];\n\t\tthis._audioResList = [];\n\t\tthis._animaResList = [];\n\n\t\tthis._allAnimationNodes = [];\n\t\tthis._hintsNodeList = [];\n\t\tthis._lastFingerPosition= {\n\t\t\tpos: null,\n\t\t\tdirty: false\n\t\t};\n\t\tthis._figurePointRectArray = [];\n\t},\n\n\t_designSize: null, // 设计分辨率\n\t_frameSize: null, // å±å¹•分辨率\n\t_mapScaleMin: null, // 场景ä¸å¸¸ç”¨ç¼©æ”¾ï¼ˆå–大值)\n\t_mapScaleMax: null, // 场景ä¸å¸¸ç”¨ç¼©æ”¾ï¼ˆå–å°å€¼ï¼‰\n\t_cocosScale: null, // cocos 自缩放 (较少用到)\n\t\n\tinitSize() {\n\t\t// 注æ„cc.winSizeåªæœ‰åœ¨é€‚é…åŽ(修改fitHeight/fitWidthåŽ)æ‰èƒ½èŽ·å–到æ£ç¡®çš„值,å› æ¤ä½¿ç”¨cc.getFrameSize()æ¥èŽ·å–åˆå§‹çš„å±å¹•大å°\n\t\tlet screen_size = cc.view.getFrameSize().width / cc.view.getFrameSize().height\n\t\tlet design_size = cc.Canvas.instance.designResolution.width / cc.Canvas.instance.designResolution.height\n\t\tlet f = screen_size >= design_size\n\t\tcc.Canvas.instance.fitHeight = f\n\t\tcc.Canvas.instance.fitWidth = !f\n\n\t\tconst frameSize = cc.view.getFrameSize();\n\t\tthis._frameSize = frameSize;\n\n\t\tthis._designSize = cc.view.getDesignResolutionSize();\n\n\t\tlet sx = cc.winSize.width / frameSize.width;\n\t\tlet sy = cc.winSize.height / frameSize.height;\n\t\tthis._cocosScale = Math.min(sx, sy);\n\n\t\tsx = frameSize.width / this._designSize.width;\n\t\tsy = frameSize.height / this._designSize.height;\n\t\tthis._mapScaleMin = Math.min(sx, sy) * this._cocosScale;\n\t\tthis._mapScaleMax = Math.max(sx, sy) * this._cocosScale;\n\t},\n\tcreateStateMachine(){\n\t\tconst check = [\n\t\t\t\t\t\t\t{ target: '#game.end', cond: (ctx, evt) => {\n\t\t\t\t\t\t\t\tconsole.log('[answer NEXT] check if end', ctx.questionIndex >= ctx.questionsCount - 1);\n\t\t\t\t\t\t\t\treturn ctx.questionIndex >= ctx.questionsCount -1\n\n\t\t\t\t\t\t\t} },\n \t\t\t\t\t{ target: 'hint' } // reenter 'hint' state\n\t\t\t\t\t\t]\n\t\tconst QuestionState = {\n\t\t\tid: 'question',\n\t\t\tinitial: 'hint',\n\t\t\tstates: {\n\t\t\t\thint: {\n\t\t\t\t\tinvoke: {\n\t\t\t\t\t\tsrc: (ctx, event) => {\n\t\t\t\t\t\t\tconsole.log(`[hint] play question ${ctx.questionIndex}: ${ctx.questionPlayTimes } audio`);\n\t\t\t\t\t\t\tctx.questionPlayTimes += 1;\n\t\t\t\t\t\t\treturn new Promise((resolve,reject) => {\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tplayAudioByUrl(ctx.questions[ctx.questionIndex].audio_url, () => {\n\t\t\t\t\t\t\t\t\tconsole.log('hint finish');\n\t\t\t\t\t\t\t\t\tresolve()\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonDone: 'answer',\n\t\t\t\t\t\tonError: 'answer'\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tanswer: {\n\t\t\t\t\tafter: {\n\t\t\t\t\t\t8000: [\n \t\t\t\t\t{ \n\t\t\t\t\t\t\t\ttarget: 'wrong',\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t} // reenter 'hint' state\n\t\t\t\t\t\t]\n\t\t\t\t\t\t\n\t\t\t\t\t},\n\t\t\t\t\t\n\t\t\t\t\tinvoke: {\n\t\t\t\t\t\t\n\t\t\t\t\t\tsrc: (context, event) => (callback, onReceive) => {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tconsole.log('[answer] thinking and playing');\n\t\t\t\t\t\t\t// check every second\n\t\t\t\t\t\t\tconst id = setInterval(() => {\n\t\t\t\t\t\t\t\tconsole.log(\"aaaaaa\");\n\t\t\t\t\t\t\t\tif (!this._lastFingerPosition.dirty) {\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tconst region = context.questions[context.questionIndex];\n\t\t\t\t\t\t\t\tconst result = this.checkInRegion(region.rect);\n\t\t\t\t\t\t\t\tif (result === null) {\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tconsole.log('[Genise JS] checkInRegion' + result)\n\t\t\t\t\t\t\t\tif (result) {\n\t\t\t\t\t\t\t\t\tcallback('RIGHT')\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcallback('WRONG')\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}, 300);\n\t\t\t\t\t\t\tthis._intervalIds.push(id);\n\t\t\t\t\t\n\t\t\t\t\t\t\t// Perform cleanup\n\t\t\t\t\t\t\treturn () => clearInterval(id);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\n\t\t\t\t\t},\n\t\t\t\t\ton: {\n\t\t\t\t\t\tRIGHT: {\n\t\t\t\t\t\t\ttarget: 'right',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tWRONG: {\n\t\t\t\t\t\t\ttarget: 'wrong',\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\n\t\t\t\tright: {\n\t\t\t\t\tinvoke: {\n\t\t\t\t\t\tsrc: (context, event) => {\n\t\t\t\t\t\t\tthis._lastFingerPosition.pos = null;\n\t\t\t\t\t\t\tthis._lastFingerPosition.dirty = false;\n\t\t\t\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\t\t\t\tconsole.log('answer right');\n\t\t\t\t\t\t\t\t// this.playAni(context.questionIndex, 'normal')\n\t\t\t\t\t\t\t\tconst an = context.questions[context.questionIndex].node;\n\t\t\t\t\t\t\t\tconsole.log('in right ' + (typeof an))\n\t\t\t\t\t\t\t\tan.active = true;\n\t\t\t\t\t\t\t\tconst dragonDisplay = an.getComponent(dragonBones.ArmatureDisplay);\n\t\t\t\t\t\t\t\tdragonDisplay.playAnimation('normal', 0);\n\t\t\t\t\t\t\t\tconst ddLogoCat = this.logoCat.getComponent(dragonBones.ArmatureDisplay)\n\t\t\t\t\t\t\t\tddLogoCat.playAnimation('right', 1)\n\t\t\t\t\t\t\t\tddLogoCat.once(dragonBones.EventObject.COMPLETE, function() {\n\t\t\t\t\t\t\t\t\tthis.logoCat.getComponent(dragonBones.ArmatureDisplay).playAnimation('normal', 0)\n\t\t\t\t\t\t\t\t}, this)\n\n\t\t\t\t\t\t\t\tplayAudioByUrl(this.rightAudio, () => {\n\t\t\t\t\t\t\t\t\tresolve()\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonDone: {\n\t\t\t\t\t\t\ttarget: '#QuestionsArray.next',\n\t\t\t\t\t\t\tactions: raise('CHECK')\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonError: {\n\t\t\t\t\t\t\ttarget: '#QuestionsArray.next',\n\t\t\t\t\t\t\tactions: raise('CHECK')\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\twrong:{\n\t\t\t\t\tinvoke: {\n\t\t\t\t\t\tsrc: (context, event) => {\n\t\t\t\t\t\t\tthis._lastFingerPosition.pos = null;\n\t\t\t\t\t\t\tthis._lastFingerPosition.dirty = false;\n\t\t\t\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\t\t\t\tconsole.log('answer wrong', context.questionIndex, context.questionPlayTimes , context.maxQuestionTryTimes);\n\t\t\t\t\t\t\t\tconst ddLogoCat = this.logoCat.getComponent(dragonBones.ArmatureDisplay)\n\t\t\t\t\t\t\t\tddLogoCat.playAnimation('wrong', 1)\n\t\t\t\t\t\t\t\tddLogoCat.once(dragonBones.EventObject.COMPLETE, function() {\n\t\t\t\t\t\t\t\t\tthis.logoCat.getComponent(dragonBones.ArmatureDisplay).playAnimation('normal', 0)\n\t\t\t\t\t\t\t\t}, this);\n\t\t\t\t\t\t\t\tlet wrongEffect = this.wrongAudio;\n\t\t\t\t\t\t\t\t// 第一和第二题的æç¤ºéŸ³\n\t\t\t\t\t\t\t\tif ([0, 1].includes(context.questionIndex)) {\n\t\t\t\t\t\t\t\t\twrongEffect = this.data[`wrong_audio${context.questionPlayTimes}`]\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t// éžç¬¬ä¸€å’Œç¬¬äºŒé¢˜ï¼Œå¹¶ä¸”åšç¬¬äºŒéçš„æç¤ºéŸ³\n\t\t\t\t\t\t\t\t\tif (context.questionPlayTimes == 2) {\n\t\t\t\t\t\t\t\t\t\twrongEffect = this.data[`wrong_audio${context.questionPlayTimes}`]\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\n\t\t\t\t\t\t\t\tif (context.questionPlayTimes >= context.maxQuestionTryTimes) {\n\t\t\t\t\t\t\t\t\tconst an = context.questions[context.questionIndex].node;\n\t\t\t\t\t\t\t\t\tan.active = true;\n\n\t\t\t\t\t\t\t\t\tif (an.isSpine) {\n\n\t\t\t\t\t\t\t\t\t\tconst skeleton = an.getComponent(sp.Skeleton);\n\t\t\t\t\t\t\t\t\t\tskeleton.setToSetupPose();\n\t\t\t\t\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t\t\t\t\tskeleton.setAnimation(0, 'normal', true);\n\t\t\t\t\t\t\t\t\t\t}, 1);\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tconst dragonDisplay = an.getComponent(dragonBones.ArmatureDisplay);\n\t\t\t\t\t\t\t\t\t\tdragonDisplay.playAnimation('normal', 0);\n\t\t\t\t\t\t\t\t\t\tconsole.log('show animation', an.active);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tplayAudioByUrl(wrongEffect, () => {\n\t\t\t\t\t\t\t\t\tif (context.questionPlayTimes >= context.maxQuestionTryTimes) {\n\t\t\t\t\t\t\t\t\t\t// const an = context.questions[context.questionIndex].node;\n\t\t\t\t\t\t\t\t\t\t// an.active = true;\n\t\t\t\t\t\t\t\t\t\t// const dragonDisplay = an.getComponent(dragonBones.ArmatureDisplay);\n\t\t\t\t\t\t\t\t\t\t// dragonDisplay.playAnimation('normal', 0);\n\t\t\t\t\t\t\t\t\t\t// console.log('show animation', an.active);\n\t\t\t\t\t\t\t\t\t\treject()\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tresolve()\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonDone: {\n\t\t\t\t\t\t\ttarget: 'hint',\n\t\t\t\t\t\t\t// actions: raise('CHECK')\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonError: {\n\t\t\t\t\t\t\ttarget: '#QuestionsArray.next',\n\t\t\t\t\t\t\tactions: raise('CHECK')\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\t\tconst QuestionsArrayStatus = {\n\t\t\tid: 'QuestionsArray',\n\t\t\tinitial: 'play',\n\t\t\tstates: {\n\t\t\t\tplay: {\n\t\t\t\t\t...QuestionState\n\t\t\t\t},\n\t\t\t\tnext: {\n\t\t\t\t\ton: {\n\t\t\t\t\t\tCHECK: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttarget: '#game.end',\n\t\t\t\t\t\t\t\tcond: (ctx, evt) => {\n\t\t\t\t\t\t\t\t\tctx.questionIndex += 1;\n\t\t\t\t\t\t\t\t\tctx.questionPlayTimes = 0\n\t\t\t\t\t\t\t\t\tconsole.log('#game.end', ctx.questionIndex >= ctx.questionsCount )\n\t\t\t\t\t\t\t\t\treturn ctx.questionIndex >= ctx.questionsCount\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{target: 'play'}\n\t\t\t\t\t\t]\n\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t\n\t\tconst state = {\n\t\t\tid: 'game',\n\t\t\tinitial: 'begin',\n\t\t\tcontext: {\n\t\t\t\tquestionIndex: 0,\n\t\t\t\tquestionPlayTimes: 0,\n\t\t\t\tmaxQuestionTryTimes: 2,\n\t\t\t\tquestionsCount: this._figurePointRectArray.length,\n\t\t\t\tquestions: this._figurePointRectArray,\n\t\t\t},\n\t\t\tstates: {\n\t\t\t\tbegin: {\n\t\t\t\t\tinvoke: {\n\t\t\t\t\t\tsrc: (ctx) => {\n\t\t\t\t\t\t\tconsole.log('game begin 1');\n\t\t\t\t\t\t\tif(window.courseware && window.courseware.openOsmoFingerRead) {\n\t\t\t\t\t\t\t\tthis.isOpenedOsmoFingerRead = true;\n\t\t\t\t\t\t\t\twindow.courseware.openOsmoFingerRead({\n\t\t\t\t\t\t\t\t\t\"page_id\": 27,\n\t\t\t\t\t\t\t\t\t\"book_id\": \"opw1\"\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvar dragonDisplay = this.logoCat.getComponent(dragonBones.ArmatureDisplay);\n\t\t\t\t\t\t\tconst state = dragonDisplay.playAnimation('begin', 0);\n\t\t\t\t\t\t\treturn new Promise((resolve,reject) => {\n\t\t\t\t\t\t\t\tplayAudioByUrl(this.data.begin_audio, () => {\n\t\t\t\t\t\t\t\t\tconsole.log('game begin audio finish');\n\t\t\t\t\t\t\t\t\tresolve()\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonDone: 'guide',\n\t\t\t\t\t\tonError: 'guide'\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\n\t\t\t\tguide:{\n\t\t\t\t\tinvoke: {\n\t\t\t\t\t\tsrc: (ctx) => {\n\t\t\t\t\t\t\treturn new Promise((resolve,reject) => {\n\t\t\t\t\t\t\t\tplayAudioByUrl(this.data.guide_audio, () => {\n\t\t\t\t\t\t\t\t\tconsole.log('game guide audio finish');\n\t\t\t\t\t\t\t\t\treject()\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonDone: 'playing',\n\t\t\t\t\t\tonError: 'playing'\n\t\t\t\t\t},\n\t\t\t\t\t\n\t\t\t\t},\n\t\t\t\tplaying: {\n\t\t\t\t\tentry: (ctx) => {\n\t\t\t\t\t\tconsole.log('entry play stage');\n\t\t\t\t\t\tvar dragonDisplay = this.logoCat.getComponent(dragonBones.ArmatureDisplay);\n\t\t\t\t\t\tconst state = dragonDisplay.playAnimation('normal', 0);\n\t\t\t\t\t\tcc.assetManager.loadRemote(this.data.playing_audio, (err, audioClip) => {\n\t\t\t\t\t\t\tcc.audioEngine.playMusic(audioClip, true, 0.8);\n\t\t\t\t\t\t});\n\t\t\t\t\t\tctx.questions.forEach((block) => {\n\t\t\t\t\t\t\tblock.node.active = false;\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\texit: () => {\n\t\t\t\t\t\tconsole.log('exit play stage');\n\t\t\t\t\t\tcc.audioEngine.stopMusic();\n\t\t\t\t\t},\n\t\t\t\t\ton: {\n\t\t\t\t\t\tNEXT: 'end'\n\t\t\t\t\t},\n\t\t\t\t\t// ...QuestionsStates\n\t\t\t\t\t...QuestionsArrayStatus\n\t\t\t\t},\n\t\t\t\tend: {\n\t\t\t\t\t\tentry: (ctx, event) => {\n\t\t\t\t\t\t\tconsole.log('game end');\n\t\t\t\t\t\t\tvar dragonDisplay = this.logoCat.getComponent(dragonBones.ArmatureDisplay);\n\t\t\t\t\t\t\tconst state = dragonDisplay.playAnimation('finish', 0);\n\t\t\t\t\t\t\tif(window.courseware && window.courseware.closeOsmoFingerRead) {\n\t\t\t\t\t\t\t\tthis.isOpenedOsmoFingerRead = false;\n\t\t\t\t\t\t\t\twindow.courseware.closeOsmoFingerRead()\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tplayAudioByUrl(this.data.end_audio, () => {\n\t\t\t\t\t\t\t\tconsole.log('game finish');\n\t\t\t\t\t\t\t\tonHomeworkFinish();\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t// return new Promise((resolve,reject) => {\n\t\t\t\t\t\t\t// \tsetTimeout(() => {\n\t\t\t\t\t\t\t// \t\tconsole.log('hint finish');\n\t\t\t\t\t\t\t// \t\tresolve()\n\t\t\t\t\t\t\t// \t}, 2000)\n\t\t\t\t\t\t\t// })\n\t\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t},\n\t\t\t}\n\t\t};\n\t\tconst after = {};\n\t\tfor(let i = 0 ;i < this._hintsNodeList.length; i++) {\n\t\t\tconst t = this._hintsNodeList[i].node;\n\t\t\tconst k = this._hintsNodeList[i].after;\n\t\t\tafter[k]= {\n\t\t\t\tactions: () => {\n\n\t\t\t\t\tif (t.isSpine) {\n\n\t\t\t\t\t\tconst skeleton = t.getComponent(sp.Skeleton);\n\t\t\t\t\t\t\n\t\t\t\t\t\tskeleton.setToSetupPose();\n\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\tskeleton.setAnimation(0, 'enlarge', false);\n\t\t\t\t\t\t}, 1);\n\t\t\t\t\t\t\n\t\t\t\t\t\t// skeleton.animation = skeleton.animationNames[0];\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tconst dragonDisplay = t.getComponent(dragonBones.ArmatureDisplay);\n\t\t\t\t\t\tdragonDisplay.playAnimation('enlarge', 1);\n\t\t\t\t\t\tconsole.log(dragonDisplay._armatureKey, 'enlarge')\n\t\t\t\t\t\tdragonDisplay.addEventListener(dragonBones.EventObject.COMPLETE, (event) => {\n\t\t\t\t\t\t\t// TODO 这里写触å‘事件\n\t\t\t\t\t\t\t// event.name为事件åç§°\n\t\t\t\t\t\t\t// event.armature.animation.play('normal', 0);\n\t\t\t\t\t\t\t// console.log(event.animationState.name, dragonDisplay._armatureKey, 'end')\n\t\t\t\t\t\t}, this);\n\t\t\t\t\t}\n\n\n\n\t\t\t\t\t// const dragonDisplay = t.getComponent(dragonBones.ArmatureDisplay);\n\t\t\t\t\t// dragonDisplay.playAnimation('enlarge', 1);\n\t\t\t\t\t// console.log(dragonDisplay._armatureKey, 'enlarge')\n\t\t\t\t\t// dragonDisplay.addEventListener(dragonBones.EventObject.COMPLETE, (event) => {\n\t\t\t\t\t// \t//TODO 这里写触å‘事件\n\t\t\t\t\t// \t//event.name为事件åç§°\n\t\t\t\t\t// \tevent.armature.animation.play('normal', 0);\n\t\t\t\t\t// \tconsole.log(event.animationState.name, dragonDisplay._armatureKey, 'end')\n\t\t\t\t\t// }, this);\n\t\t\t\t} \n\t\t\t}\n\t\t}\n\t\tif (this.data.begin_sep_time) {\n\t\t\tconst t = +this.data.begin_sep_time * 1000;\n\t\t\tafter[t] = {\n\t\t\t\tactions: () => {\n\t\t\t\t\tconsole.log('game begin 2');\n\n\t\t\t\t\tfor(let i = 0 ;i < this._allAnimationNodes.length; i++) {\n\t\t\t\t\t\tconst t = this._allAnimationNodes[i];\n\t\t\t\t\t\tif (t.isSpine) {\n\n\t\t\t\t\t\t\tconst skeleton = t.getComponent(sp.Skeleton);\n\t\t\t\t\t\t\tconsole.log('skeleton: ', skeleton);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tskeleton.setToSetupPose();\n\t\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t\tskeleton.setAnimation(0, 'normal', true);\n\t\t\t\t\t\t\t}, 1);\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\tconsole.log('skeleton 22: ', skeleton);\n\n\t\t\t\t\t\t\t// skeleton.animation = skeleton.animationNames[0];\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tconst dragonDisplay = t.getComponent(dragonBones.ArmatureDisplay);\n\t\t\t\t\t\t\tdragonDisplay.playAnimation('normal', 0);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\tstate.states.begin.after = after;\n\n\n\n\t\tconst gameMachine = createMachine(state);\n\t\twindow.gameMachine = gameMachine;\n\t\tthis.gameMachineService = interpret(gameMachine).onTransition((state) => {\n\t\t// console.log(1, state.value, state.context);\n\t\t});\n\t\tthis.gameMachineService.start();\n\t\tif (window.gameMachineService) {\n\t\t\twindow.gameMachineService = gameMachineService;\n\t\t}\n\n\n\t},\n\n\t\n\n\n\n\t// 生命周期 start\n\tstart() {\n\t\tlet getData = this.getData.bind(this);\n\t\tif (window && window.courseware) {\n\t\t\tgetData = window.courseware.getData;\n\t\t}\n\n\t\tgetData((data) => {\n\t\t\t// console.log('data:', data);\n\t\t\tthis.data = data || this.getDefaultData();\n\t\t\tthis.data = JSON.parse(JSON.stringify(this.data))\n\t\t\t\n\t\t\tthis.preloadItem()\n\t\t});\n\t\twindow.air = window.air || {}\n\t\tif (window.air) {\n\t\t\twindow.air.osmoFingerReadCallback = (result) => {\n\t\t\t\tif (!this.gameMachineService) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// const st = this.gameMachineService.state.value.constructor.name == 'Object' \n\t\t\t\t// && this.gameMachineService.state.value['playing']\n\t\t\t\t// && this.gameMachineService.state.value['playing'].constructor.name == 'Object'\n\t\t\t\t// && this.gameMachineService.state.value['playing']['play']\n\t\t\t\t// && this.gameMachineService.state.value['playing']['play'] == 'answer'\n\t\t\t\t// if (st) {\n\t\t\t\t// }\n\t\t\t\tconst resultObj = JSON.parse(result);\n\t\t\t\tconsole.log('[Genise JS] '+ JSON.stringify(resultObj.finger_pos_in_page))\n\t\t\t\tconst p = resultObj.finger_pos_in_page;\n\t\t\t\tif (p.x == -1 || p.y == -1) {\n\t\t\t\t\tthis._lastFingerPosition.pos = null;\n\t\t\t\t\tthis._lastFingerPosition.dirty = false;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis._lastFingerPosition = {\n\t\t\t\t\tpos:{\n\t\t\t\t\t\tx: p.x,\n\t\t\t\t\t\ty: p.y\n\t\t\t\t\t},\n\t\t\t\t\tdirty: true\n\t\t\t\t}\n\t\t\t\tthis.debugPointer(p.x, p.y)\n\t\t\t}\n\t\t}\n\t\tthis.isDebug = false;\n\t\t\n\t},\n\tcheckInRegion(r) {\n\t\tconsole.log('r~~~: ', r);\n\t\tif (!this._lastFingerPosition && !this._lastFingerPosition.pos) {\n\t\t\treturn null;\n\t\t}\n\t\tconst p = this._lastFingerPosition ? this._lastFingerPosition.pos || {x:0, y:0} : {x:0, y:0};\n\t\tconst w = p.x > r.x && p.x < (r.x + r.width);\n\t\tconst h = p.y > r.y && p.y < (r.y + r.height);\n\t\treturn w && h;\n\n\t},\n\n\tgetData(func) {\n\t\tif (window && window.courseware) {\n\t\t\twindow.courseware.getData(func, 'scene');\n\t\t\treturn;\n\t\t}\n\n\t\tconst middleLayer = cc.find('middleLayer');\n\t\tif (middleLayer) {\n\t\t\tconst middleLayerComponent = middleLayer.getComponent('middleLayer');\n\t\t\tmiddleLayerComponent.getData(func);\n\t\t\treturn;\n\t\t}\n\n\t\tfunc(this.getDefaultData());\n\t},\n\n\tgetDefaultData() {\n\t\treturn {\"begin_audio\":\"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3\",\"begin_sep_time\":1,\"guide_audio\":\"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3\",\"playing_audio\":\"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3\",\"right_audio\":\"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3\",\"wrong_audio\":\"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3\",\"wrong_audio1\":\"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3\",\"wrong_audio2\":\"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3\",\"end_audio\":\"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3\",\"bgItem\":{\"url\":\"http://staging-teach.cdn.ireadabc.com/84ec6edc20bceaaa9dbe824092b6860d.png\",\"rect\":{\"x\":736.95,\"y\":0,\"width\":599.09,\"height\":775}},\"hotZoneItemArr\":[{\"id\":\"1659333645573\",\"index\":0,\"audio_url\":\"http://staging-teach.cdn.ireadabc.com/5a1a2670845bfe76662e86d9a3a69f81.mp3\",\"itemType\":\"rect\",\"fontScale\":1.61953125,\"imgScale\":1,\"imgSizeW\":0,\"imgSizeH\":0,\"mapScale\":1.61953125,\"dragDot\":{\"x\":1036.5,\"y\":387.5},\"gIdx\":\"1\",\"labelText\":\"1\",\"posX\":887.5,\"posY\":165.5,\"skeJsonData\":{\"url\":\"http://staging-teach.cdn.ireadabc.com/133a1f60719ed26247e35dc022d82862.json\",\"name\":\"spineboy-pro.json\"},\"texJsonData\":{\"url\":\"http://staging-teach.cdn.ireadabc.com/e0945b8265ea3b8053afb814c6b849d3.atlas\",\"name\":\"spineboy-pro.atlas\"},\"texPngData\":{\"url\":\"http://staging-teach.cdn.ireadabc.com/517553f50224915148f9efc5b7556798.png\",\"name\":\"spineboy-pro.png\"},\"animType\":\"spine\",\"rect\":{\"x\":48.05,\"y\":65.5,\"width\":205,\"height\":200}},{\"id\":\"1659334098930\",\"index\":1,\"audio_url\":\"http://staging-teach.cdn.ireadabc.com/16eb06a6beb9e4fa77c9b5d2d643ab29.mp3\",\"itemType\":\"rect\",\"fontScale\":1.61953125,\"imgScale\":1,\"imgSizeW\":0,\"imgSizeH\":0,\"mapScale\":1.61953125,\"dragDot\":{\"x\":1036.5,\"y\":387.5},\"gIdx\":\"0\",\"labelText\":\"1\",\"posX\":1212.5,\"posY\":643.5,\"skeJsonData\":{\"url\":\"http://staging-teach.cdn.ireadabc.com/679fed26daa464819d553de6331b3552.json\",\"name\":\"alien-pro.json\"},\"texJsonData\":{\"url\":\"http://staging-teach.cdn.ireadabc.com/65d8214c6b5c5d0496e17adb0408276a.atlas\",\"name\":\"alien-pro.atlas\"},\"texPngData\":{\"url\":\"http://staging-teach.cdn.ireadabc.com/a319b372899239325b90bb4ec07b4970.png\",\"name\":\"alien-pro.png\"},\"animType\":\"spine\",\"rect\":{\"x\":375.56,\"y\":543.5,\"width\":200,\"height\":200}}]}\n\t\t// return defaultData;\n\t},\n\n\tpreloadItem() {\n\t\tthis.addPreloadImage();\n\t\tthis.addPreloadAudio();\n\t\tthis.addPreloadAnima();\n\t\tthis.preload();\n\t},\n\n\n\taddPreloadImage() {\n\n\t\tthis._imageResList.push({ url: this.data.bgItem.url});\n\n\t\tfor (const q of this.data.hotZoneItemArr) {\n\t\t\tif (q.gIdx =='0') {\n\t\t\t\tthis._imageResList.push({ url: q.texPngData.url});\n\t\t\t}\n\n\t\t\tif (q.gIdx =='1') {\n\t\t\t\tthis._imageResList.push({ url: q.texPngData.url });\n\t\t\t}\n\t\t\tif (q.gIdx =='2') {\n\t\t\t\tthis._imageResList.push({ url: q.pic_url});\n\t\t\t}\n\t\t}\n\t},\n\tprepareAudioClip(url, key) {\n\t\tif (url) {\n\t\t\tcc.assetManager.loadRemote(url, (err, audioClip) => {\n\t\t\t\tif (audioClip) {\n\t\t\t\t\tthis[key] = audioClip;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t},\n\taddPreloadAudio() {\n\n\t\tthis._audioResList.push({ url: this.data.begin_audio });\n\t\t// this.prepareAudioClip(this.data.begin_audio1, 'begin_audio1')\n\t\t// this._audioResList.push({ url: this.data.begin_audio2 });\n\t\t// this.prepareAudioClip(this.data.begin_audio2, 'begin_audio2')\n\t\tthis._audioResList.push({ url: this.data.guide_audio });\n\t\tthis._audioResList.push({ url: this.data.playing_audio });\n\t\tif (this.data.wrong_audio) {\n\t\t\tthis._audioResList.push({ url: this.data.wrong_audio });\n\t\t\tthis.wrongAudio = this.data.wrong_audio\n\t\t}\n\t\tif (this.data.right_audio) {\n\t\t\tthis._audioResList.push({ url: this.data.right_audio });\n\t\t\tthis.rightAudio = this.data.right_audio\n\t\t}\n\t\tthis._audioResList.push({ url: this.data.wrong_audio1 });\n\t\tthis._audioResList.push({ url: this.data.wrong_audio2 });\n\t\tthis._audioResList.push({ url: this.data.end_audio });\n\n\n\t\tfor (const q of this.data.hotZoneItemArr) {\n\t\t\tif (q.gIdx =='0') {\n\t\t\t\tthis._audioResList.push({ url: q.audio_url });\n\t\t\t}\n\t\t}\n\t},\n\tdebugPointer() {\n\t\tconst boxDebugger = cc.find('Canvas/box-debugger');\n\t\tif (!this.isDebug) {\n\t\t\tboxDebugger.active = false;\n\t\t\treturn;\n\t\t}\n\t\tif (!this.POINTER_NODE) {\n\t\t\tthis.POINTER_NODE = new cc.Node();\n\t\t\tthis.POINTER_NODE.parent = boxDebugger;\n\t\t\tthis.POINTER_NODE.name = 'POINTER_NODE'\n\t\t\tthis.POINTER_NODE.addComponent(cc.Graphics);\n\t\t}\n\t\tconst grap = this.POINTER_NODE.getComponent(cc.Graphics);\n\t\tgrap.clear();\n\t\tconst ground = cc.find('Canvas/frame-border/ground');\n\t\tconst {width: baseW, height: baseH} = ground;\n\t\tconst {x: px, y: py} = this._lastFingerPosition.pos;\n\t\tlet x = baseW * px - baseW / 2;\n\t\tlet y = baseH - (baseH * py) - baseH / 2 - 16;\n\t\tconst pn = new cc.Node();\n\t\t\n\t\tgrap.fillColor=cc.color(255, 0, 0);\n\t\tgrap.circle(x, y, 32);\n\t\tgrap.fill();\n\t\tgrap.stroke();\n\t},\n\tdebugGraphics() {\n\t\tconst boxDebugger = cc.find('Canvas/box-debugger');\n\t\tif (!this.isDebug) {\n\t\t\tboxDebugger.active = false;\n\t\t\treturn;\n\t\t}\n\t\tboxDebugger.active = true;\n\t\tconsole.log('show debug graphics');\n\t\tconst ground = cc.find('Canvas/frame-border/ground');\n\t\tconst canvas = cc.find('Canvas');\n\t\tconst {width: baseW, height: baseH} = ground;\n\t\tconst {width: bgW, height: bgH} = this.data.bgItem.rect\n\t\tconst scaleX = bgW / baseW;\n\t\tconst scaleY = bgH / baseH;\n\t\tlet added =false\n\t\tthis.data.hotZoneItemArr.forEach(area => {\n\t\t\t\n\t\t\tif (added) {\n\t\t\t\t// return\n\t\t\t}\n\t\t\tif (area.gIdx != '0') {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tadded = true;\n\t\t\tconst dn = new cc.Node();\n\t\t\tconst lblNode = new cc.Node();\n\t\t\tlblNode.parent = dn\n\t\t\tconst lbl = lblNode.addComponent(cc.Label);\n\t\t\tlblNode.color = cc.color(0,0,0)\n\t\t\tlbl.string = area.skeJsonData.name.substring(0, area.skeJsonData.name.length - 9)\n\t\t\tdn.name = lbl.string;\n\t\t\tdn.parent = boxDebugger;\n\t\t\tdn.width = baseW;\n\t\t\tdn.height = baseH;\n\t\t\t\n\t\t\tconst grap = dn.addComponent(cc.Graphics);\n\t\t\tconst r = RandomInt(1,255)\n\t\t\tconst g = RandomInt(1,255)\n\t\t\tconst b = RandomInt(1,255)\n\t\t\tgrap.fillColor=cc.color(r, g, b, 127);\n\t\t\tconst {x: rx, y: ry, width: rw, height: rh} = area.rect;\n\t\t\tlet w = (rw / bgW) * baseW;\n\t\t\tlet h = (rh / bgH) * baseH;\n\t\t\tlet x = (rx / bgW) * baseW - baseW / 2;\n\t\t\tlet y = baseH - ((ry / bgH) * baseH) - h - baseH / 2;\n\t\t\t// w *= scaleX\n\t\t\t// h *= scaleY\n\t\t\t// x *= scaleX\n\t\t\t// y *= scaleY\n // const p = boxDebugger.convertToNodeSpaceAR(cc.v2(x,y));\n\t\t\t// x = p.x;\n\t\t\t// y = p.y;\n\t\t\tlblNode.x = x;\n\t\t\tlblNode.y = y + h;\n\t\t\t// dn.scaleX = scaleX;\n\t\t\t// dn.scaleY = scaleY;\n\t\t\t// dn.scale = area.mapScale; // minScale; // this._mapScaleMax * area.mapScale; // ;\n\t\t\tconsole.log('[debug]', area.skeJsonData.name, x, y, w, h);\n\t\t\tgrap.fillRect(x, y, w, h);\n\t\t\tgrap.stroke();\n\t\t\t\n\t\t});\n\n\t},\n\taddPreloadAnima() {\n\n\t},\n\n\tpreload() {\n\n\t\tconst preloadArr = this._imageResList.concat(this._audioResList).concat(this._animaResList);\n\t\t// console.log(preloadArr);\n\t\tcc.assetManager.loadAny(preloadArr, null, (f, t, item) => {\n\t\t\t// console.log(f, t, item)\n\t\t}, (err, data) => {\n\t\t\t// console.log(err, data);\n\t\t\tconst ground = cc.find(`Canvas/frame-border/ground`);\n\t\t\tconst groundBg = cc.find(`Canvas/frame-border/ground/bg`);\n\t\t\tgroundBg.active = false;\n\t\t\tconst baseRect = this.data.bgItem.rect;\n\t\t\tgetSpriteFrimeByUrl(this.data.bgItem.url, (sf) => {\n\t\t\t\tconst gs = groundBg.getComponent(cc.Sprite);\n\t\t\t\tgs.spriteFrame = sf;\n\t\t\t\tgroundBg.active = true;\n\n\t\t\t\tlet dbCount = 0;\n\t\t\t\tlet finishDbCount = 0\n\t\t\t\tfor(const block of this.data.hotZoneItemArr) {\n\t\t\t\t\tif (block.gIdx == '0' || block.gIdx == '1') {\n\t\t\t\t\t\tdbCount++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfor(const block of this.data.hotZoneItemArr) {\n\n\t\t\t\t\t\n\t\t\t\t\tif (block.gIdx == '2') {\n\t\t\t\t\t\tconst s1 = ((ground.width / block.imgSizeW) + (ground.height / block.imgSizeH)) / 2\n\t\t\t\t\t\tconst node = new cc.Node();\n\t\t\t\t\t\tnode.parent = ground;\n\t\t\t\t\t\tconst spr = node.addComponent(cc.Sprite);\n\t\t\t\t\t\tgetSpriteFrimeByUrl(block.pic_url, (sf) => {\n\t\t\t\t\t\tspr.spriteFrame = sf;\n\t\t\t\t\t\tnode.scale = s1;\n\t\t\t\t\t\t})\n\n\t\t\t\t\t}\n\t\t\t\t\tif (block.gIdx == '0' || block.gIdx == '1') {\n\n\t\t\t\t\t\tconst n = new cc.Node();\n\t\t\t\t\t\tn.scale = 0.25;\n\t\t\t\t\t\tn.parent = ground;\n\t\t\t\t\t\tn.active = false;\n\n\t\t\t\t\t\tif (block.animType == 'spine') {\n\t\t\t\n\t\t\t\t\t\t\tconst skeleton = n.addComponent(sp.Skeleton);\n\t\t\t\t\t\t\tn.isSpine = true;\n\n\t\t\t\t\t\t\tloadSpine(skeleton, block.texPngData.name, {\n\t\t\t\t\t\t\t\ttex: block.texPngData.url, \n\t\t\t\t\t\t\t\tatlas: block.texJsonData.url,\n\t\t\t\t\t\t\t\tske: block.skeJsonData.url,\n\t\t\t\t\t\t\t}).then(({width, height}) => {\n\t\t\t\t\t\t\t\tn.width = width;\n\t\t\t\t\t\t\t\tn.height = height;\t\n\t\t\t\t\t\t\t\tn.active = true;\n\t\t\t\t\t\t\t\t// db.playAnimation('null', 0);\n\t\t\t\t\t\t\t\t// skeleton.setToSetupPose();\n\t\t\t\t\t\t\t\tskeleton.setAnimation(0, 'enlarge', true);\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tthis._allAnimationNodes.push(n);\n\t\t\t\t\t\t\t\tfinishDbCount++;\n\t\t\t\t\t\t\t\tconsole.log(finishDbCount, dbCount)\n\t\t\t\t\t\t\t\tif (finishDbCount == dbCount) {\n\t\t\t\t\t\t\t\t\tthis.loadEnd();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}).catch(() => {\n\t\t\t\t\t\t\t\tfinishDbCount++;\n\t\t\t\t\t\t\t\tconsole.log(finishDbCount, dbCount)\n\t\t\t\t\t\t\t\tif (finishDbCount == dbCount) {\n\t\t\t\t\t\t\t\t\tthis.loadEnd();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t} else {\n\t\t\n\t\t\t\t\t\t\tconst db = n.addComponent(dragonBones.ArmatureDisplay);\n\n\t\t\t\t\t\t\tloadDragonBones(db, {\n\t\t\t\t\t\t\t\ttex: block.texPngData.url, \n\t\t\t\t\t\t\t\tatlas: block.texJsonData.url,\n\t\t\t\t\t\t\t\tske: block.skeJsonData.url,\n\t\t\t\t\t\t\t}).then(({width, height}) => {\n\t\t\t\t\t\t\t\tn.width = width;\n\t\t\t\t\t\t\t\tn.height = height;\t\n\t\t\t\t\t\t\t\tn.active = true;\n\t\t\t\t\t\t\t\tdb.playAnimation('null', 0);\n\t\t\t\t\t\t\t\tthis._allAnimationNodes.push(n);\n\t\t\t\t\t\t\t\tfinishDbCount++;\n\t\t\t\t\t\t\t\tconsole.log(finishDbCount, dbCount)\n\t\t\t\t\t\t\t\tif (finishDbCount == dbCount) {\n\t\t\t\t\t\t\t\t\tthis.loadEnd();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}).catch(() => {\n\t\t\t\t\t\t\t\tfinishDbCount++;\n\t\t\t\t\t\t\t\tconsole.log(finishDbCount, dbCount)\n\t\t\t\t\t\t\t\tif (finishDbCount == dbCount) {\n\t\t\t\t\t\t\t\t\tthis.loadEnd();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\n\t\t\t\t\t\tif (block.gIdx == '0') {\n\t\t\t\t\t\t\tconst rectInfo = {\n\t\t\t\t\t\t\t\tnode: n,\n\t\t\t\t\t\t\t\taudio_url: block.audio_url ,\n\t\t\t\t\t\t\t\trect: {\n\t\t\t\t\t\t\t\t\tx: block.rect.x / baseRect.width,\n\t\t\t\t\t\t\t\t\ty: block.rect.y / baseRect.height,\n\t\t\t\t\t\t\t\t\twidth: block.rect.width / baseRect.width,\n\t\t\t\t\t\t\t\t\theight: block.rect.height / baseRect.height,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tthis._figurePointRectArray.push(rectInfo);\n\n\t\t\t\t\t\t\t// this.addRectNodeListener(block);\n\t\t\n\t\t\t\t\t\t\tif (block.labelText) {\n\t\t\t\t\t\t\t\tconst k = +block.labelText * 1000;\n\t\t\t\t\t\t\t\tif(!isNaN(k)) {\n\t\t\t\t\t\t\t\t\tthis._hintsNodeList.push({\n\t\t\t\t\t\t\t\t\t\tnode: n,\n\t\t\t\t\t\t\t\t\t\tafter: k\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\t\n\t\t\t// console.log(this.data);\n\t\t\tconsole.log('resource perload finish');\n\n// <<<<<<< HEAD\n// =======\n// \t\t\tif (window && window[\"air\"]) {\n// \t\t\t\t// cc.find('Canvas').opacity = 0;\n// \t\t\t\twindow.air.onCourseInScreen = (next) => {\n// \t\t\t\t\t// cc.find('Canvas').opacity = 255;\n// \t\t\t\t\tthis.loadEnd();\n// \t\t\t\t\tnext();\n// \t\t\t\t}\n// \t\t\t\twindow.air.hideAirClassLoading();\n// \t\t\t} else {\n// \t\t\t\tthis.loadEnd();\n// \t\t\t}\n// >>>>>>> 2d461e1910571bcfc6ad4dc93c2cedafc20923ea\n\n\t\t\tcc.debug.setDisplayStats(false);\n\t\t});\n\t},\n\n\n\tloadEnd() {\n\t\tif (window && window[\"air\"] && window[\"air\"].hideAirClassLoading) {\n\t\t\twindow[\"air\"].hideAirClassLoading();\n\t\t}\n\t\tthis.initData();\n\t\t// this.initAudio();\n\t\t// this.initView();\n\t\tthis.initBg();\n\t\t// this.initListener();\n\t\tthis.debugGraphics();\n\t\tthis.createStateMachine();\n\t},\n\n\t_cantouch: null,\n\tinitData() {\n\t\t// 所有全局å˜é‡ 默认都是null \n\t\tthis._cantouch = true;\n\t},\n\n\t// audioBtn: null,\n\t// initAudio() {\n\t// \tconst audioNode = cc.find('Canvas/res/audio');\n\n\t// \tconst getAudioByResName = (resName) => {\n\t// \t\treturn audioNode.getChildByName(resName).getComponent(cc.AudioSource);\n\t// \t}\n\n\t// \tthis.audioBtn = getAudioByResName('btn');\n\n\t// },\n\n\n\t// initView() {\n\n\t// \t// this.initBg();\n\t// \t// this.initPic();\n\t// \t// this.initBtn();\n\t// \tthis.initIcon();\n\t// },\n\n\taddRectNodeListener(data) {\n\n\n\t\tconst bg = cc.find(`Canvas/frame-border/ground/bg`);\n\n\t\tconst rate = (bg.scale * bg.width) / this.data.bgItem.rect.width;\n\n\t\tconst rectNode = new cc.Node();\n\t\trectNode.name = 'rect' + data.index;\n\t\tbg.addChild(rectNode);\n\n\n\t\tconst ctx = rectNode.addComponent(cc.Graphics);\n\t\t// 红色矩形\n\t\tctx.lineWidth = 4;\n\t\tctx.strokeColor = cc.Color.BLACK;\n\t\tctx.fillColor = cc.Color.WHITE.setA(100);\n\n\t\tconst scale = rate / bg.scaleY;\n\n\t\trectNode.width = data.rect.width * scale;\n\t\trectNode.height = data.rect.height * scale;\n\t\trectNode.x = -bg.width / 2 + data.rect.x * scale;\n\t\trectNode.y = bg.height / 2 - data.rect.height * scale - data.rect.y * scale;\n\n\t\trectNode.anchorX = rectNode.anchorY = 0;\n\n\n\t\t// if (pageData.bgItem.isShowDebugLine) {\n\t\t\tctx.rect(0, 0, rectNode.width, rectNode.height);\n\t\t// }\n\t\tctx.stroke();\n\t\tctx.fill();\n\n\t},\n\n\tinitBg() {\n\t\tconst bgNode = cc.find('Canvas/bg');\n\t\tbgNode.scale = this._mapScaleMax;\n\t\tconsole.log('this._mapScaleMax', this._mapScaleMax);\n\t},\n\n\t\n\t\n\n\t/*initBtn() {\n\n\t\tthis.curPage = 0;\n\t\tconst bottomPart = cc.find('Canvas/bottomPart');\n\t\tbottomPart.zIndex = 5; // æé«˜å±‚级\n\n\t\tbottomPart.x = bottomPart.parent.width / 2;\n\t\tbottomPart.y = -bottomPart.parent.height / 2;\n\n\t\tconst leftBtnNode = bottomPart.getChildByName('btn_left');\n\t\t//èŠ‚ç‚¹ä¸æ·»åŠ äº†button组件 则å¯ä»¥æ·»åŠ click事件监å¬\n\t\tleftBtnNode.on('click', () => {\n\t\t\tif (!this._cantouch) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (this.curPage == 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.curPage = 0\n\t\t\tthis.leftMove();\n\n\t\t\t// 游æˆç»“æŸæ—¶éœ€è¦è°ƒç”¨è¿™ä¸ªæ–¹æ³•通知系统作业完æˆ\n\t\t\tonHomeworkFinish();\n\n\t\t\tcc.audioEngine.play(this.audioBtn.clip, false, 0.8)\n\t\t})\n\n\t\tconst rightBtnNode = bottomPart.getChildByName('btn_right');\n\t\t//èŠ‚ç‚¹ä¸æ·»åŠ äº†button组件 则å¯ä»¥æ·»åŠ click事件监å¬\n\t\trightBtnNode.on('click', () => {\n\t\t\tif (!this._cantouch) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (this.curPage == 1) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.curPage = 1\n\t\t\tthis.rightMove();\n\n\t\t\tcc.audioEngine.play(this.audioBtn.clip, false, 0.5)\n\t\t})\n\t},*/\n\n\n\n\n\t// update (dt) {},\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\t_timeoutIds: null,\n\t_intervalIds: null,\n\t// 生命周期\n\tonDestroy() {\n\t\tconsole.log('op15 onDestroy');\n\t\tthis._timeoutIds.forEach(id => {\n\t\t\tclearTimeout(id);\n\t\t});\n\t\tthis._intervalIds.forEach(id => {\n\t\t\tclearInterval(id);\n\t\t});\n\t\tthis.gameMachineService.stopChild();\n\t\tthis.gameMachineService.stop();\n\t\tif(window.courseware && window.courseware.closeOsmoFingerRead) {\n\t\t\tif (this.isOpenedOsmoFingerRead) {\n\t\t\t\twindow.courseware.closeOsmoFingerRead()\n\t\t\t}\n\t\t}\n\t},\n\n\n\n\n\n});\n"]} \ No newline at end of file +{"version":3,"sources":["assets/OP15/scene/OP15.js"],"names":["pure","actions","send","raise","sendParent","cc","Class","Component","properties","rightAudio","type","AudioClip","wrongAudio","logoCat","Node","playAni","idx","name","options","times","cb","callback","node","_figurePointRectArray","dragonDisplay","getComponent","dragonBones","ArmatureDisplay","state","playAnimation","onLoad","_timeoutIds","_intervalIds","initSceneData","initSize","window","ccc","_imageResList","_audioResList","_animaResList","_lastFingerPosition","_hintsNodeList","_allAnimationNodes","pos","dirty","_designSize","_frameSize","_mapScaleMin","_mapScaleMax","_cocosScale","screen_size","view","getFrameSize","width","height","design_size","Canvas","instance","designResolution","f","fitHeight","fitWidth","frameSize","getDesignResolutionSize","sx","winSize","sy","Math","min","max","createStateMachine","check","target","cond","ctx","evt","console","log","questionIndex","questionsCount","QuestionState","id","initial","states","hint","invoke","src","event","questionPlayTimes","Promise","resolve","reject","questions","audio_url","onDone","onError","answer","after","context","onReceive","setInterval","region","result","checkInRegion","rect","push","clearInterval","on","RIGHT","WRONG","right","an","active","isSpine","skeleton","sp","Skeleton","setToSetupPose","setTimeout","setAnimation","ddLogoCat","once","EventObject","COMPLETE","wrong","maxQuestionTryTimes","wrongEffect","includes","data","QuestionsArrayStatus","play","next","CHECK","length","begin","courseware","openOsmoFingerRead","isOpenedOsmoFingerRead","begin_audio","guide","guide_audio","playing","entry","assetManager","loadRemote","playing_audio","err","audioClip","audioEngine","playMusic","forEach","block","exit","stopMusic","NEXT","end","closeOsmoFingerRead","end_audio","i","t","k","_armatureKey","addEventListener","begin_sep_time","gameMachine","gameMachineService","onTransition","start","getData","bind","getDefaultData","JSON","parse","stringify","preloadItem","air","osmoFingerReadCallback","resultObj","finger_pos_in_page","p","x","y","debugPointer","isDebug","r","w","h","func","middleLayer","find","middleLayerComponent","addPreloadImage","addPreloadAudio","addPreloadAnima","preload","url","bgItem","hotZoneItemArr","q","gIdx","texPngData","pic_url","prepareAudioClip","key","wrong_audio","right_audio","wrong_audio1","wrong_audio2","boxDebugger","POINTER_NODE","parent","addComponent","Graphics","grap","clear","ground","baseW","baseH","px","py","pn","fillColor","color","circle","fill","stroke","debugGraphics","canvas","bgW","bgH","scaleX","scaleY","added","area","dn","lblNode","lbl","Label","string","skeJsonData","substring","g","b","rx","ry","rw","rh","fillRect","preloadArr","concat","loadAny","item","groundBg","baseRect","sf","gs","Sprite","spriteFrame","dbCount","finishDbCount","s1","imgSizeW","imgSizeH","spr","scale","n","animType","tex","atlas","texJsonData","ske","then","loadEnd","db","rectInfo","labelText","isNaN","debug","setDisplayStats","hideAirClassLoading","initData","initBg","_cantouch","addRectNodeListener","bg","rate","rectNode","index","addChild","lineWidth","strokeColor","Color","BLACK","WHITE","setA","anchorX","anchorY","Button","_x","_y","_w","_h","bgNode","onDestroy","clearTimeout","stopChild","stop"],"mappings":"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","sourceRoot":"/","sourcesContent":["import { onHomeworkFinish, RandomInt, playAudioByUrl, loadDragonBones, getSpriteFrimeByUrl, loadSpine } from \"../script/util\";\nimport { defaultData } from \"../script/defaultData\";\nimport { assign, createMachine, interpret, actions, forwardTo, matchesState } from \"../script/xstate\";\nconst { pure , send, raise, sendParent } = actions;\n\n\ncc.Class({\n\n\textends: cc.Component,\n\n\tproperties: {\n\t\t/*ant: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},\n\t\tapple: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},\n\t\tbird: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},\n\t\tcar: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},\n\t\tcat: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},\n\t\tcow: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},\n\t\tduck: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},\n\t\tegg: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},\n\t\tfarmer: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},\n\t\tfish: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},\n\t\tgirl: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},\n\t\then: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},\n\t\thouse: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node,\n\t\t},*/\n\t\trightAudio: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.AudioClip,\n\t\t},\n\t\twrongAudio: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.AudioClip,\n\t\t},\n\t\tlogoCat: {\n\t\t\tdefault: null,\n\t\t\ttype: cc.Node\n\t\t}\n\n\t},\n\n\tplayAni(idx, name, options) {\n\t\tconst times = (options && options.times) || 1;\n\t\tconst cb = (options && options.callback) || null;\n\t\t// const cat = cc.find(`Canvas/frame-border/ground/${node}`);\n\t\tconst node = this._figurePointRectArray[idx].node\n\t\tvar dragonDisplay = node.getComponent(dragonBones.ArmatureDisplay);\n\n\t\tconst state = dragonDisplay.playAnimation(name, times);\n\t\t// dragonDisplay.addEventListener(dragonBones.EventObject.COMPLETE, (event) => {\n\t\t// \t//TODO 这里写触å‘事件\n\t\t// \t//event.name为事件åç§°\n\t\t// \tconsole.log(event.name)\n\t\t// }, this);\n\t\t// animationDisplay.addEventListener(dragonBones.EventObject.COMPLETE, completeCallback);\n\t\treturn state;\n\t},\n\t// 生命周期 onLoad\n\tonLoad() {\n\t\tthis._timeoutIds = [];\n\t\tthis._intervalIds = [];\n\t\tthis.initSceneData();\n\t\tthis.initSize();\n\t\twindow.ccc = this;\n\t},\n\n\t_imageResList: null,\n\t_audioResList: null,\n\t_animaResList: null,\n\n\t_lastFingerPosition: null,\n\n\t_hintsNodeList : null,\n\t_figurePointRectArray: null,\n\n\t_allAnimationNodes: null,\n\n\tinitSceneData() {\n\t\tthis._imageResList = [];\n\t\tthis._audioResList = [];\n\t\tthis._animaResList = [];\n\n\t\tthis._allAnimationNodes = [];\n\t\tthis._hintsNodeList = [];\n\t\tthis._lastFingerPosition= {\n\t\t\tpos: null,\n\t\t\tdirty: false\n\t\t};\n\t\tthis._figurePointRectArray = [];\n\t},\n\n\t_designSize: null, // 设计分辨率\n\t_frameSize: null, // å±å¹•分辨率\n\t_mapScaleMin: null, // 场景ä¸å¸¸ç”¨ç¼©æ”¾ï¼ˆå–大值)\n\t_mapScaleMax: null, // 场景ä¸å¸¸ç”¨ç¼©æ”¾ï¼ˆå–å°å€¼ï¼‰\n\t_cocosScale: null, // cocos 自缩放 (较少用到)\n\t\n\tinitSize() {\n\t\t// 注æ„cc.winSizeåªæœ‰åœ¨é€‚é…åŽ(修改fitHeight/fitWidthåŽ)æ‰èƒ½èŽ·å–到æ£ç¡®çš„值,å› æ¤ä½¿ç”¨cc.getFrameSize()æ¥èŽ·å–åˆå§‹çš„å±å¹•大å°\n\t\tlet screen_size = cc.view.getFrameSize().width / cc.view.getFrameSize().height\n\t\tlet design_size = cc.Canvas.instance.designResolution.width / cc.Canvas.instance.designResolution.height\n\t\tlet f = screen_size >= design_size\n\t\tcc.Canvas.instance.fitHeight = f\n\t\tcc.Canvas.instance.fitWidth = !f\n\n\t\tconst frameSize = cc.view.getFrameSize();\n\t\tthis._frameSize = frameSize;\n\n\t\tthis._designSize = cc.view.getDesignResolutionSize();\n\n\t\tlet sx = cc.winSize.width / frameSize.width;\n\t\tlet sy = cc.winSize.height / frameSize.height;\n\t\tthis._cocosScale = Math.min(sx, sy);\n\n\t\tsx = frameSize.width / this._designSize.width;\n\t\tsy = frameSize.height / this._designSize.height;\n\t\tthis._mapScaleMin = Math.min(sx, sy) * this._cocosScale;\n\t\tthis._mapScaleMax = Math.max(sx, sy) * this._cocosScale;\n\t},\n\tcreateStateMachine(){\n\t\tconst check = [\n\t\t\t\t\t\t\t{ target: '#game.end', cond: (ctx, evt) => {\n\t\t\t\t\t\t\t\tconsole.log('[answer NEXT] check if end', ctx.questionIndex >= ctx.questionsCount - 1);\n\t\t\t\t\t\t\t\treturn ctx.questionIndex >= ctx.questionsCount -1\n\n\t\t\t\t\t\t\t} },\n \t\t\t\t\t{ target: 'hint' } // reenter 'hint' state\n\t\t\t\t\t\t]\n\t\tconst QuestionState = {\n\t\t\tid: 'question',\n\t\t\tinitial: 'hint',\n\t\t\tstates: {\n\t\t\t\thint: {\n\t\t\t\t\tinvoke: {\n\t\t\t\t\t\tsrc: (ctx, event) => {\n\t\t\t\t\t\t\tconsole.log(`[hint] play question ${ctx.questionIndex}: ${ctx.questionPlayTimes } audio`);\n\t\t\t\t\t\t\tctx.questionPlayTimes += 1;\n\t\t\t\t\t\t\treturn new Promise((resolve,reject) => {\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tplayAudioByUrl(ctx.questions[ctx.questionIndex].audio_url, () => {\n\t\t\t\t\t\t\t\t\tconsole.log('hint finish');\n\t\t\t\t\t\t\t\t\tresolve()\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonDone: 'answer',\n\t\t\t\t\t\tonError: 'answer'\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tanswer: {\n\t\t\t\t\tafter: {\n\t\t\t\t\t\t8000: [\n \t\t\t\t\t{ \n\t\t\t\t\t\t\t\ttarget: 'wrong',\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t} // reenter 'hint' state\n\t\t\t\t\t\t]\n\t\t\t\t\t\t\n\t\t\t\t\t},\n\t\t\t\t\t\n\t\t\t\t\tinvoke: {\n\t\t\t\t\t\t\n\t\t\t\t\t\tsrc: (context, event) => (callback, onReceive) => {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tconsole.log('[answer] thinking and playing');\n\t\t\t\t\t\t\t// check every second\n\t\t\t\t\t\t\tconst id = setInterval(() => {\n\t\t\t\t\t\t\t\tif (!this._lastFingerPosition.dirty) {\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tconst region = context.questions[context.questionIndex];\n\t\t\t\t\t\t\t\tconst result = this.checkInRegion(region.rect);\n\t\t\t\t\t\t\t\tif (result === null) {\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tconsole.log('[Genise JS] checkInRegion' + result)\n\t\t\t\t\t\t\t\tif (result) {\n\t\t\t\t\t\t\t\t\tcallback('RIGHT')\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcallback('WRONG')\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}, 100);\n\t\t\t\t\t\t\tthis._intervalIds.push(id);\n\t\t\t\t\t\n\t\t\t\t\t\t\t// Perform cleanup\n\t\t\t\t\t\t\treturn () => clearInterval(id);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\n\t\t\t\t\t},\n\t\t\t\t\ton: {\n\t\t\t\t\t\tRIGHT: {\n\t\t\t\t\t\t\ttarget: 'right',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tWRONG: {\n\t\t\t\t\t\t\ttarget: 'wrong',\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\n\t\t\t\tright: {\n\t\t\t\t\tinvoke: {\n\t\t\t\t\t\tsrc: (context, event) => {\n\t\t\t\t\t\t\tthis._lastFingerPosition.pos = null;\n\t\t\t\t\t\t\tthis._lastFingerPosition.dirty = false;\n\t\t\t\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\t\t\t\tconsole.log('answer right');\n\t\t\t\t\t\t\t\t// this.playAni(context.questionIndex, 'normal')\n\t\t\t\t\t\t\t\tconst an = context.questions[context.questionIndex].node;\n\t\t\t\t\t\t\t\tconsole.log('in right ' + (typeof an))\n\t\t\t\t\t\t\t\tan.active = true;\n\n\t\t\t\t\t\t\t\tif (an.isSpine) {\n\n\t\t\t\t\t\t\t\t\tconst skeleton = an.getComponent(sp.Skeleton);\n\t\t\t\t\t\t\t\t\tskeleton.setToSetupPose();\n\t\t\t\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t\t\t\tskeleton.setAnimation(0, 'normal', true);\n\t\t\t\t\t\t\t\t\t}, 1);\n\t\t\t\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tconst dragonDisplay = an.getComponent(dragonBones.ArmatureDisplay);\n\t\t\t\t\t\t\t\t\tdragonDisplay.playAnimation('normal', 0);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tconst ddLogoCat = this.logoCat.getComponent(dragonBones.ArmatureDisplay)\n\t\t\t\t\t\t\t\tddLogoCat.playAnimation('right', 1)\n\t\t\t\t\t\t\t\tddLogoCat.once(dragonBones.EventObject.COMPLETE, function() {\n\t\t\t\t\t\t\t\t\tthis.logoCat.getComponent(dragonBones.ArmatureDisplay).playAnimation('normal', 0)\n\t\t\t\t\t\t\t\t}, this)\n\n\t\t\t\t\t\t\t\tplayAudioByUrl(this.rightAudio, () => {\n\t\t\t\t\t\t\t\t\tresolve()\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonDone: {\n\t\t\t\t\t\t\ttarget: '#QuestionsArray.next',\n\t\t\t\t\t\t\tactions: raise('CHECK')\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonError: {\n\t\t\t\t\t\t\ttarget: '#QuestionsArray.next',\n\t\t\t\t\t\t\tactions: raise('CHECK')\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\twrong:{\n\t\t\t\t\tinvoke: {\n\t\t\t\t\t\tsrc: (context, event) => {\n\t\t\t\t\t\t\tthis._lastFingerPosition.pos = null;\n\t\t\t\t\t\t\tthis._lastFingerPosition.dirty = false;\n\t\t\t\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\t\t\t\tconsole.log('answer wrong', context.questionIndex, context.questionPlayTimes , context.maxQuestionTryTimes);\n\t\t\t\t\t\t\t\tconst ddLogoCat = this.logoCat.getComponent(dragonBones.ArmatureDisplay)\n\t\t\t\t\t\t\t\tddLogoCat.playAnimation('wrong', 1)\n\t\t\t\t\t\t\t\tddLogoCat.once(dragonBones.EventObject.COMPLETE, function() {\n\t\t\t\t\t\t\t\t\tthis.logoCat.getComponent(dragonBones.ArmatureDisplay).playAnimation('normal', 0)\n\t\t\t\t\t\t\t\t}, this);\n\t\t\t\t\t\t\t\tlet wrongEffect = this.wrongAudio;\n\t\t\t\t\t\t\t\t// 第一和第二题的æç¤ºéŸ³\n\t\t\t\t\t\t\t\tif ([0, 1].includes(context.questionIndex)) {\n\t\t\t\t\t\t\t\t\twrongEffect = this.data[`wrong_audio${context.questionPlayTimes}`]\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t// éžç¬¬ä¸€å’Œç¬¬äºŒé¢˜ï¼Œå¹¶ä¸”åšç¬¬äºŒéçš„æç¤ºéŸ³\n\t\t\t\t\t\t\t\t\tif (context.questionPlayTimes == 2) {\n\t\t\t\t\t\t\t\t\t\twrongEffect = this.data[`wrong_audio${context.questionPlayTimes}`]\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\n\t\t\t\t\t\t\t\tif (context.questionPlayTimes >= context.maxQuestionTryTimes) {\n\t\t\t\t\t\t\t\t\tconst an = context.questions[context.questionIndex].node;\n\t\t\t\t\t\t\t\t\tan.active = true;\n\n\t\t\t\t\t\t\t\t\tif (an.isSpine) {\n\n\t\t\t\t\t\t\t\t\t\tconst skeleton = an.getComponent(sp.Skeleton);\n\t\t\t\t\t\t\t\t\t\tskeleton.setToSetupPose();\n\t\t\t\t\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t\t\t\t\tskeleton.setAnimation(0, 'normal', true);\n\t\t\t\t\t\t\t\t\t\t}, 1);\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tconst dragonDisplay = an.getComponent(dragonBones.ArmatureDisplay);\n\t\t\t\t\t\t\t\t\t\tdragonDisplay.playAnimation('normal', 0);\n\t\t\t\t\t\t\t\t\t\tconsole.log('show animation', an.active);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tplayAudioByUrl(wrongEffect, () => {\n\t\t\t\t\t\t\t\t\tif (context.questionPlayTimes >= context.maxQuestionTryTimes) {\n\t\t\t\t\t\t\t\t\t\t// const an = context.questions[context.questionIndex].node;\n\t\t\t\t\t\t\t\t\t\t// an.active = true;\n\t\t\t\t\t\t\t\t\t\t// const dragonDisplay = an.getComponent(dragonBones.ArmatureDisplay);\n\t\t\t\t\t\t\t\t\t\t// dragonDisplay.playAnimation('normal', 0);\n\t\t\t\t\t\t\t\t\t\t// console.log('show animation', an.active);\n\t\t\t\t\t\t\t\t\t\treject()\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tresolve()\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonDone: {\n\t\t\t\t\t\t\ttarget: 'hint',\n\t\t\t\t\t\t\t// actions: raise('CHECK')\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonError: {\n\t\t\t\t\t\t\ttarget: '#QuestionsArray.next',\n\t\t\t\t\t\t\tactions: raise('CHECK')\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\t\tconst QuestionsArrayStatus = {\n\t\t\tid: 'QuestionsArray',\n\t\t\tinitial: 'play',\n\t\t\tstates: {\n\t\t\t\tplay: {\n\t\t\t\t\t...QuestionState\n\t\t\t\t},\n\t\t\t\tnext: {\n\t\t\t\t\ton: {\n\t\t\t\t\t\tCHECK: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttarget: '#game.end',\n\t\t\t\t\t\t\t\tcond: (ctx, evt) => {\n\t\t\t\t\t\t\t\t\tctx.questionIndex += 1;\n\t\t\t\t\t\t\t\t\tctx.questionPlayTimes = 0\n\t\t\t\t\t\t\t\t\tconsole.log('#game.end', ctx.questionIndex >= ctx.questionsCount )\n\t\t\t\t\t\t\t\t\treturn ctx.questionIndex >= ctx.questionsCount\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{target: 'play'}\n\t\t\t\t\t\t]\n\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t\n\t\tconst state = {\n\t\t\tid: 'game',\n\t\t\tinitial: 'begin',\n\t\t\tcontext: {\n\t\t\t\tquestionIndex: 0,\n\t\t\t\tquestionPlayTimes: 0,\n\t\t\t\tmaxQuestionTryTimes: 2,\n\t\t\t\tquestionsCount: this._figurePointRectArray.length,\n\t\t\t\tquestions: this._figurePointRectArray,\n\t\t\t},\n\t\t\tstates: {\n\t\t\t\tbegin: {\n\t\t\t\t\tinvoke: {\n\t\t\t\t\t\tsrc: (ctx) => {\n\t\t\t\t\t\t\tconsole.log('game begin 1');\n\t\t\t\t\t\t\tif(window.courseware && window.courseware.openOsmoFingerRead) {\n\t\t\t\t\t\t\t\tthis.isOpenedOsmoFingerRead = true;\n\t\t\t\t\t\t\t\twindow.courseware.openOsmoFingerRead({\n\t\t\t\t\t\t\t\t\t\"page_id\": 27,\n\t\t\t\t\t\t\t\t\t\"book_id\": \"opw1\"\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvar dragonDisplay = this.logoCat.getComponent(dragonBones.ArmatureDisplay);\n\t\t\t\t\t\t\tconst state = dragonDisplay.playAnimation('begin', 0);\n\t\t\t\t\t\t\treturn new Promise((resolve,reject) => {\n\t\t\t\t\t\t\t\tplayAudioByUrl(this.data.begin_audio, () => {\n\t\t\t\t\t\t\t\t\tconsole.log('game begin audio finish');\n\t\t\t\t\t\t\t\t\tresolve()\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonDone: 'guide',\n\t\t\t\t\t\tonError: 'guide'\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\n\t\t\t\tguide:{\n\t\t\t\t\tinvoke: {\n\t\t\t\t\t\tsrc: (ctx) => {\n\t\t\t\t\t\t\treturn new Promise((resolve,reject) => {\n\t\t\t\t\t\t\t\tplayAudioByUrl(this.data.guide_audio, () => {\n\t\t\t\t\t\t\t\t\tconsole.log('game guide audio finish');\n\t\t\t\t\t\t\t\t\treject()\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonDone: 'playing',\n\t\t\t\t\t\tonError: 'playing'\n\t\t\t\t\t},\n\t\t\t\t\t\n\t\t\t\t},\n\t\t\t\tplaying: {\n\t\t\t\t\tentry: (ctx) => {\n\t\t\t\t\t\tconsole.log('entry play stage');\n\t\t\t\t\t\tvar dragonDisplay = this.logoCat.getComponent(dragonBones.ArmatureDisplay);\n\t\t\t\t\t\tconst state = dragonDisplay.playAnimation('normal', 0);\n\t\t\t\t\t\tcc.assetManager.loadRemote(this.data.playing_audio, (err, audioClip) => {\n\t\t\t\t\t\t\tcc.audioEngine.playMusic(audioClip, true, 0.8);\n\t\t\t\t\t\t});\n\t\t\t\t\t\tctx.questions.forEach((block) => {\n\t\t\t\t\t\t\tblock.node.active = false;\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\texit: () => {\n\t\t\t\t\t\tconsole.log('exit play stage');\n\t\t\t\t\t\tcc.audioEngine.stopMusic();\n\t\t\t\t\t},\n\t\t\t\t\ton: {\n\t\t\t\t\t\tNEXT: 'end'\n\t\t\t\t\t},\n\t\t\t\t\t// ...QuestionsStates\n\t\t\t\t\t...QuestionsArrayStatus\n\t\t\t\t},\n\t\t\t\tend: {\n\t\t\t\t\t\tentry: (ctx, event) => {\n\t\t\t\t\t\t\tconsole.log('game end');\n\t\t\t\t\t\t\tvar dragonDisplay = this.logoCat.getComponent(dragonBones.ArmatureDisplay);\n\t\t\t\t\t\t\tconst state = dragonDisplay.playAnimation('finish', 0);\n\t\t\t\t\t\t\tif(window.courseware && window.courseware.closeOsmoFingerRead) {\n\t\t\t\t\t\t\t\tthis.isOpenedOsmoFingerRead = false;\n\t\t\t\t\t\t\t\twindow.courseware.closeOsmoFingerRead()\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tplayAudioByUrl(this.data.end_audio, () => {\n\t\t\t\t\t\t\t\tconsole.log('game finish');\n\t\t\t\t\t\t\t\tonHomeworkFinish();\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t// return new Promise((resolve,reject) => {\n\t\t\t\t\t\t\t// \tsetTimeout(() => {\n\t\t\t\t\t\t\t// \t\tconsole.log('hint finish');\n\t\t\t\t\t\t\t// \t\tresolve()\n\t\t\t\t\t\t\t// \t}, 2000)\n\t\t\t\t\t\t\t// })\n\t\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t},\n\t\t\t}\n\t\t};\n\t\tconst after = {};\n\t\tfor(let i = 0 ;i < this._hintsNodeList.length; i++) {\n\t\t\tconst t = this._hintsNodeList[i].node;\n\t\t\tconst k = this._hintsNodeList[i].after;\n\t\t\tafter[k]= {\n\t\t\t\tactions: () => {\n\n\t\t\t\t\tif (t.isSpine) {\n\n\t\t\t\t\t\tconst skeleton = t.getComponent(sp.Skeleton);\n\t\t\t\t\t\t\n\t\t\t\t\t\tskeleton.setToSetupPose();\n\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\tskeleton.setAnimation(0, 'enlarge', false);\n\t\t\t\t\t\t}, 1);\n\t\t\t\t\t\t\n\t\t\t\t\t\t// skeleton.animation = skeleton.animationNames[0];\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tconst dragonDisplay = t.getComponent(dragonBones.ArmatureDisplay);\n\t\t\t\t\t\tdragonDisplay.playAnimation('enlarge', 1);\n\t\t\t\t\t\tconsole.log(dragonDisplay._armatureKey, 'enlarge')\n\t\t\t\t\t\tdragonDisplay.addEventListener(dragonBones.EventObject.COMPLETE, (event) => {\n\t\t\t\t\t\t\t// TODO 这里写触å‘事件\n\t\t\t\t\t\t\t// event.name为事件åç§°\n\t\t\t\t\t\t\t// event.armature.animation.play('normal', 0);\n\t\t\t\t\t\t\t// console.log(event.animationState.name, dragonDisplay._armatureKey, 'end')\n\t\t\t\t\t\t}, this);\n\t\t\t\t\t}\n\n\n\n\t\t\t\t\t// const dragonDisplay = t.getComponent(dragonBones.ArmatureDisplay);\n\t\t\t\t\t// dragonDisplay.playAnimation('enlarge', 1);\n\t\t\t\t\t// console.log(dragonDisplay._armatureKey, 'enlarge')\n\t\t\t\t\t// dragonDisplay.addEventListener(dragonBones.EventObject.COMPLETE, (event) => {\n\t\t\t\t\t// \t//TODO 这里写触å‘事件\n\t\t\t\t\t// \t//event.name为事件åç§°\n\t\t\t\t\t// \tevent.armature.animation.play('normal', 0);\n\t\t\t\t\t// \tconsole.log(event.animationState.name, dragonDisplay._armatureKey, 'end')\n\t\t\t\t\t// }, this);\n\t\t\t\t} \n\t\t\t}\n\t\t}\n\t\tif (this.data.begin_sep_time) {\n\t\t\tconst t = +this.data.begin_sep_time * 1000;\n\t\t\tafter[t] = {\n\t\t\t\tactions: () => {\n\t\t\t\t\tconsole.log('game begin 2');\n\n\t\t\t\t\tfor(let i = 0 ;i < this._allAnimationNodes.length; i++) {\n\t\t\t\t\t\tconst t = this._allAnimationNodes[i];\n\t\t\t\t\t\tif (t.isSpine) {\n\n\t\t\t\t\t\t\tconst skeleton = t.getComponent(sp.Skeleton);\n\t\t\t\t\t\t\tconsole.log('skeleton: ', skeleton);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tskeleton.setToSetupPose();\n\t\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t\tskeleton.setAnimation(0, 'normal', true);\n\t\t\t\t\t\t\t}, 1);\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\tconsole.log('skeleton 22: ', skeleton);\n\n\t\t\t\t\t\t\t// skeleton.animation = skeleton.animationNames[0];\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tconst dragonDisplay = t.getComponent(dragonBones.ArmatureDisplay);\n\t\t\t\t\t\t\tdragonDisplay.playAnimation('normal', 0);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\tstate.states.begin.after = after;\n\n\n\n\t\tconst gameMachine = createMachine(state);\n\t\twindow.gameMachine = gameMachine;\n\t\tthis.gameMachineService = interpret(gameMachine).onTransition((state) => {\n\t\t// console.log(1, state.value, state.context);\n\t\t});\n\t\tthis.gameMachineService.start();\n\t\tif (window.gameMachineService) {\n\t\t\twindow.gameMachineService = gameMachineService;\n\t\t}\n\n\n\t},\n\n\t\n\n\n\n\t// 生命周期 start\n\tstart() {\n\t\tlet getData = this.getData.bind(this);\n\t\tif (window && window.courseware) {\n\t\t\tgetData = window.courseware.getData;\n\t\t}\n\n\t\tgetData((data) => {\n\t\t\t// console.log('data:', data);\n\t\t\tthis.data = data || this.getDefaultData();\n\t\t\tthis.data = JSON.parse(JSON.stringify(this.data))\n\t\t\t\n\t\t\tthis.preloadItem()\n\t\t});\n\t\twindow.air = window.air || {}\n\t\tif (window.air) {\n\t\t\twindow.air.osmoFingerReadCallback = (result) => {\n\t\t\t\tif (!this.gameMachineService) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// const st = this.gameMachineService.state.value.constructor.name == 'Object' \n\t\t\t\t// && this.gameMachineService.state.value['playing']\n\t\t\t\t// && this.gameMachineService.state.value['playing'].constructor.name == 'Object'\n\t\t\t\t// && this.gameMachineService.state.value['playing']['play']\n\t\t\t\t// && this.gameMachineService.state.value['playing']['play'] == 'answer'\n\t\t\t\t// if (st) {\n\t\t\t\t// }\n\t\t\t\tconst resultObj = JSON.parse(result);\n\t\t\t\tconsole.log('[Genise JS] '+ JSON.stringify(resultObj.finger_pos_in_page))\n\t\t\t\tconst p = resultObj.finger_pos_in_page;\n\t\t\t\tif (p.x == -1 || p.y == -1) {\n\t\t\t\t\tthis._lastFingerPosition.pos = null;\n\t\t\t\t\tthis._lastFingerPosition.dirty = false;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis._lastFingerPosition = {\n\t\t\t\t\tpos:{\n\t\t\t\t\t\tx: p.x,\n\t\t\t\t\t\ty: p.y\n\t\t\t\t\t},\n\t\t\t\t\tdirty: true\n\t\t\t\t}\n\t\t\t\tthis.debugPointer(p.x, p.y)\n\t\t\t}\n\t\t}\n\t\tthis.isDebug = false;\n\t\t\n\t},\n\tcheckInRegion(r) {\n\t\tif (!this._lastFingerPosition && !this._lastFingerPosition.pos) {\n\t\t\treturn null;\n\t\t}\n\t\tconst p = this._lastFingerPosition ? this._lastFingerPosition.pos || {x:0, y:0} : {x:0, y:0};\n\n\t\tconsole.log('~p: ', p);\n\t\tconsole.log('~r: ', r);\n\n\t\tconst w = p.x > r.x && p.x < (r.x + r.width);\n\t\tconst h = p.y > r.y && p.y < (r.y + r.height);\n\t\treturn w && h;\n\n\t},\n\n\tgetData(func) {\n\t\tif (window && window.courseware) {\n\t\t\twindow.courseware.getData(func, 'scene');\n\t\t\treturn;\n\t\t}\n\n\t\tconst middleLayer = cc.find('middleLayer');\n\t\tif (middleLayer) {\n\t\t\tconst middleLayerComponent = middleLayer.getComponent('middleLayer');\n\t\t\tmiddleLayerComponent.getData(func);\n\t\t\treturn;\n\t\t}\n\n\t\tfunc(this.getDefaultData());\n\t},\n\n\tgetDefaultData() {\n\t\treturn {\"begin_audio\":\"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3\",\"begin_sep_time\":1,\"guide_audio\":\"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3\",\"playing_audio\":\"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3\",\"right_audio\":\"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3\",\"wrong_audio\":\"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3\",\"wrong_audio1\":\"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3\",\"wrong_audio2\":\"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3\",\"end_audio\":\"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3\",\"bgItem\":{\"url\":\"http://staging-teach.cdn.ireadabc.com/84ec6edc20bceaaa9dbe824092b6860d.png\",\"rect\":{\"x\":736.95,\"y\":0,\"width\":599.09,\"height\":775}},\"hotZoneItemArr\":[{\"id\":\"1659333645573\",\"index\":0,\"audio_url\":\"http://staging-teach.cdn.ireadabc.com/5a1a2670845bfe76662e86d9a3a69f81.mp3\",\"itemType\":\"rect\",\"fontScale\":1.61953125,\"imgScale\":1,\"imgSizeW\":0,\"imgSizeH\":0,\"mapScale\":1.61953125,\"dragDot\":{\"x\":1036.5,\"y\":387.5},\"gIdx\":\"1\",\"labelText\":\"1\",\"posX\":887.5,\"posY\":165.5,\"skeJsonData\":{\"url\":\"http://staging-teach.cdn.ireadabc.com/133a1f60719ed26247e35dc022d82862.json\",\"name\":\"spineboy-pro.json\"},\"texJsonData\":{\"url\":\"http://staging-teach.cdn.ireadabc.com/e0945b8265ea3b8053afb814c6b849d3.atlas\",\"name\":\"spineboy-pro.atlas\"},\"texPngData\":{\"url\":\"http://staging-teach.cdn.ireadabc.com/517553f50224915148f9efc5b7556798.png\",\"name\":\"spineboy-pro.png\"},\"animType\":\"spine\",\"rect\":{\"x\":48.05,\"y\":65.5,\"width\":205,\"height\":200}},{\"id\":\"1659334098930\",\"index\":1,\"audio_url\":\"http://staging-teach.cdn.ireadabc.com/16eb06a6beb9e4fa77c9b5d2d643ab29.mp3\",\"itemType\":\"rect\",\"fontScale\":1.61953125,\"imgScale\":1,\"imgSizeW\":0,\"imgSizeH\":0,\"mapScale\":1.61953125,\"dragDot\":{\"x\":1036.5,\"y\":387.5},\"gIdx\":\"0\",\"labelText\":\"1\",\"posX\":1212.5,\"posY\":643.5,\"skeJsonData\":{\"url\":\"http://staging-teach.cdn.ireadabc.com/679fed26daa464819d553de6331b3552.json\",\"name\":\"alien-pro.json\"},\"texJsonData\":{\"url\":\"http://staging-teach.cdn.ireadabc.com/65d8214c6b5c5d0496e17adb0408276a.atlas\",\"name\":\"alien-pro.atlas\"},\"texPngData\":{\"url\":\"http://staging-teach.cdn.ireadabc.com/a319b372899239325b90bb4ec07b4970.png\",\"name\":\"alien-pro.png\"},\"animType\":\"spine\",\"rect\":{\"x\":375.56,\"y\":543.5,\"width\":200,\"height\":200}}]}\n\t\t// return defaultData;\n\t},\n\n\tpreloadItem() {\n\t\tthis.addPreloadImage();\n\t\tthis.addPreloadAudio();\n\t\tthis.addPreloadAnima();\n\t\tthis.preload();\n\t},\n\n\n\taddPreloadImage() {\n\n\t\tthis._imageResList.push({ url: this.data.bgItem.url});\n\n\t\tfor (const q of this.data.hotZoneItemArr) {\n\t\t\tif (q.gIdx =='0') {\n\t\t\t\tthis._imageResList.push({ url: q.texPngData.url});\n\t\t\t}\n\n\t\t\tif (q.gIdx =='1') {\n\t\t\t\tthis._imageResList.push({ url: q.texPngData.url });\n\t\t\t}\n\t\t\tif (q.gIdx =='2') {\n\t\t\t\tthis._imageResList.push({ url: q.pic_url});\n\t\t\t}\n\t\t}\n\t},\n\tprepareAudioClip(url, key) {\n\t\tif (url) {\n\t\t\tcc.assetManager.loadRemote(url, (err, audioClip) => {\n\t\t\t\tif (audioClip) {\n\t\t\t\t\tthis[key] = audioClip;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t},\n\taddPreloadAudio() {\n\n\t\tthis._audioResList.push({ url: this.data.begin_audio });\n\t\t// this.prepareAudioClip(this.data.begin_audio1, 'begin_audio1')\n\t\t// this._audioResList.push({ url: this.data.begin_audio2 });\n\t\t// this.prepareAudioClip(this.data.begin_audio2, 'begin_audio2')\n\t\tthis._audioResList.push({ url: this.data.guide_audio });\n\t\tthis._audioResList.push({ url: this.data.playing_audio });\n\t\tif (this.data.wrong_audio) {\n\t\t\tthis._audioResList.push({ url: this.data.wrong_audio });\n\t\t\tthis.wrongAudio = this.data.wrong_audio\n\t\t}\n\t\tif (this.data.right_audio) {\n\t\t\tthis._audioResList.push({ url: this.data.right_audio });\n\t\t\tthis.rightAudio = this.data.right_audio\n\t\t}\n\t\tthis._audioResList.push({ url: this.data.wrong_audio1 });\n\t\tthis._audioResList.push({ url: this.data.wrong_audio2 });\n\t\tthis._audioResList.push({ url: this.data.end_audio });\n\n\n\t\tfor (const q of this.data.hotZoneItemArr) {\n\t\t\tif (q.gIdx =='0') {\n\t\t\t\tthis._audioResList.push({ url: q.audio_url });\n\t\t\t}\n\t\t}\n\t},\n\tdebugPointer() {\n\t\tconst boxDebugger = cc.find('Canvas/box-debugger');\n\t\tif (!this.isDebug) {\n\t\t\tboxDebugger.active = false;\n\t\t\treturn;\n\t\t}\n\t\tif (!this.POINTER_NODE) {\n\t\t\tthis.POINTER_NODE = new cc.Node();\n\t\t\tthis.POINTER_NODE.parent = boxDebugger;\n\t\t\tthis.POINTER_NODE.name = 'POINTER_NODE'\n\t\t\tthis.POINTER_NODE.addComponent(cc.Graphics);\n\t\t}\n\t\tconst grap = this.POINTER_NODE.getComponent(cc.Graphics);\n\t\tgrap.clear();\n\t\tconst ground = cc.find('Canvas/frame-border/ground');\n\t\tconst {width: baseW, height: baseH} = ground;\n\t\tconst {x: px, y: py} = this._lastFingerPosition.pos;\n\t\tlet x = baseW * px - baseW / 2;\n\t\tlet y = baseH - (baseH * py) - baseH / 2 - 16;\n\t\tconst pn = new cc.Node();\n\t\t\n\t\tgrap.fillColor=cc.color(255, 0, 0);\n\t\tgrap.circle(x, y, 32);\n\t\tgrap.fill();\n\t\tgrap.stroke();\n\t},\n\tdebugGraphics() {\n\t\tconst boxDebugger = cc.find('Canvas/box-debugger');\n\t\tif (!this.isDebug) {\n\t\t\tboxDebugger.active = false;\n\t\t\treturn;\n\t\t}\n\t\tboxDebugger.active = true;\n\t\tconsole.log('show debug graphics');\n\t\tconst ground = cc.find('Canvas/frame-border/ground');\n\t\tconst canvas = cc.find('Canvas');\n\t\tconst {width: baseW, height: baseH} = ground;\n\t\tconst {width: bgW, height: bgH} = this.data.bgItem.rect\n\t\tconst scaleX = bgW / baseW;\n\t\tconst scaleY = bgH / baseH;\n\t\tlet added =false\n\t\tthis.data.hotZoneItemArr.forEach(area => {\n\t\t\t\n\t\t\tif (added) {\n\t\t\t\t// return\n\t\t\t}\n\t\t\tif (area.gIdx != '0') {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tadded = true;\n\t\t\tconst dn = new cc.Node();\n\t\t\tconst lblNode = new cc.Node();\n\t\t\tlblNode.parent = dn\n\t\t\tconst lbl = lblNode.addComponent(cc.Label);\n\t\t\tlblNode.color = cc.color(0,0,0)\n\t\t\tlbl.string = area.skeJsonData.name.substring(0, area.skeJsonData.name.length - 9)\n\t\t\tdn.name = lbl.string;\n\t\t\tdn.parent = boxDebugger;\n\t\t\tdn.width = baseW;\n\t\t\tdn.height = baseH;\n\t\t\t\n\t\t\tconst grap = dn.addComponent(cc.Graphics);\n\t\t\tconst r = RandomInt(1,255)\n\t\t\tconst g = RandomInt(1,255)\n\t\t\tconst b = RandomInt(1,255)\n\t\t\tgrap.fillColor=cc.color(r, g, b, 127);\n\t\t\tconst {x: rx, y: ry, width: rw, height: rh} = area.rect;\n\t\t\tlet w = (rw / bgW) * baseW;\n\t\t\tlet h = (rh / bgH) * baseH;\n\t\t\tlet x = (rx / bgW) * baseW - baseW / 2;\n\t\t\tlet y = baseH - ((ry / bgH) * baseH) - h - baseH / 2;\n\t\t\t// w *= scaleX\n\t\t\t// h *= scaleY\n\t\t\t// x *= scaleX\n\t\t\t// y *= scaleY\n // const p = boxDebugger.convertToNodeSpaceAR(cc.v2(x,y));\n\t\t\t// x = p.x;\n\t\t\t// y = p.y;\n\t\t\tlblNode.x = x;\n\t\t\tlblNode.y = y + h;\n\t\t\t// dn.scaleX = scaleX;\n\t\t\t// dn.scaleY = scaleY;\n\t\t\t// dn.scale = area.mapScale; // minScale; // this._mapScaleMax * area.mapScale; // ;\n\t\t\tconsole.log('[debug]', area.skeJsonData.name, x, y, w, h);\n\t\t\tgrap.fillRect(x, y, w, h);\n\t\t\tgrap.stroke();\n\t\t\t\n\t\t});\n\n\t},\n\taddPreloadAnima() {\n\n\t},\n\n\tpreload() {\n\n\t\tconst preloadArr = this._imageResList.concat(this._audioResList).concat(this._animaResList);\n\t\t// console.log(preloadArr);\n\t\tcc.assetManager.loadAny(preloadArr, null, (f, t, item) => {\n\t\t\t// console.log(f, t, item)\n\t\t}, (err, data) => {\n\t\t\t// console.log(err, data);\n\t\t\tconst ground = cc.find(`Canvas/frame-border/ground`);\n\t\t\tconst groundBg = cc.find(`Canvas/frame-border/ground/bg`);\n\t\t\tgroundBg.active = false;\n\t\t\tconst baseRect = this.data.bgItem.rect;\n\t\t\tgetSpriteFrimeByUrl(this.data.bgItem.url, (sf) => {\n\t\t\t\tconst gs = groundBg.getComponent(cc.Sprite);\n\t\t\t\tgs.spriteFrame = sf;\n\t\t\t\tgroundBg.active = true;\n\n\t\t\t\tlet dbCount = 0;\n\t\t\t\tlet finishDbCount = 0\n\t\t\t\tfor(const block of this.data.hotZoneItemArr) {\n\t\t\t\t\tif (block.gIdx == '0' || block.gIdx == '1') {\n\t\t\t\t\t\tdbCount++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfor(const block of this.data.hotZoneItemArr) {\n\n\t\t\t\t\t\n\t\t\t\t\tif (block.gIdx == '2') {\n\t\t\t\t\t\tconst s1 = ((ground.width / block.imgSizeW) + (ground.height / block.imgSizeH)) / 2\n\t\t\t\t\t\tconst node = new cc.Node();\n\t\t\t\t\t\tnode.parent = ground;\n\t\t\t\t\t\tconst spr = node.addComponent(cc.Sprite);\n\t\t\t\t\t\tgetSpriteFrimeByUrl(block.pic_url, (sf) => {\n\t\t\t\t\t\tspr.spriteFrame = sf;\n\t\t\t\t\t\tnode.scale = s1;\n\t\t\t\t\t\t})\n\n\t\t\t\t\t}\n\t\t\t\t\tif (block.gIdx == '0' || block.gIdx == '1') {\n\n\t\t\t\t\t\tconst n = new cc.Node();\n\t\t\t\t\t\t// n.scale = 0.25;\n\t\t\t\t\t\tn.scale = ground.width / groundBg.width;\n\n\t\t\t\t\t\tn.parent = ground;\n\t\t\t\t\t\tn.active = false;\n\n\t\t\t\t\t\tif (block.animType == 'spine') {\n\t\t\t\n\t\t\t\t\t\t\tconst skeleton = n.addComponent(sp.Skeleton);\n\t\t\t\t\t\t\tn.isSpine = true;\n\n\t\t\t\t\t\t\tloadSpine(skeleton, block.texPngData.name, {\n\t\t\t\t\t\t\t\ttex: block.texPngData.url, \n\t\t\t\t\t\t\t\tatlas: block.texJsonData.url,\n\t\t\t\t\t\t\t\tske: block.skeJsonData.url,\n\t\t\t\t\t\t\t}).then(({width, height}) => {\n\t\t\t\t\t\t\t\tn.width = width;\n\t\t\t\t\t\t\t\tn.height = height;\t\n\t\t\t\t\t\t\t\tn.active = true;\n\t\t\t\t\t\t\t\t// db.playAnimation('null', 0);\n\t\t\t\t\t\t\t\t// skeleton.setToSetupPose();\n\t\t\t\t\t\t\t\t// skeleton.setAnimation(0, 'enlarge', true);\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tthis._allAnimationNodes.push(n);\n\t\t\t\t\t\t\t\tfinishDbCount++;\n\t\t\t\t\t\t\t\tconsole.log(finishDbCount, dbCount)\n\t\t\t\t\t\t\t\tif (finishDbCount == dbCount) {\n\t\t\t\t\t\t\t\t\tthis.loadEnd();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}).catch(() => {\n\t\t\t\t\t\t\t\tfinishDbCount++;\n\t\t\t\t\t\t\t\tconsole.log(finishDbCount, dbCount)\n\t\t\t\t\t\t\t\tif (finishDbCount == dbCount) {\n\t\t\t\t\t\t\t\t\tthis.loadEnd();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t} else {\n\t\t\n\t\t\t\t\t\t\tconst db = n.addComponent(dragonBones.ArmatureDisplay);\n\n\t\t\t\t\t\t\tloadDragonBones(db, {\n\t\t\t\t\t\t\t\ttex: block.texPngData.url, \n\t\t\t\t\t\t\t\tatlas: block.texJsonData.url,\n\t\t\t\t\t\t\t\tske: block.skeJsonData.url,\n\t\t\t\t\t\t\t}).then(({width, height}) => {\n\t\t\t\t\t\t\t\tn.width = width;\n\t\t\t\t\t\t\t\tn.height = height;\t\n\t\t\t\t\t\t\t\tn.active = true;\n\t\t\t\t\t\t\t\tdb.playAnimation('null', 0);\n\t\t\t\t\t\t\t\tthis._allAnimationNodes.push(n);\n\t\t\t\t\t\t\t\tfinishDbCount++;\n\t\t\t\t\t\t\t\tconsole.log(finishDbCount, dbCount)\n\t\t\t\t\t\t\t\tif (finishDbCount == dbCount) {\n\t\t\t\t\t\t\t\t\tthis.loadEnd();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}).catch(() => {\n\t\t\t\t\t\t\t\tfinishDbCount++;\n\t\t\t\t\t\t\t\tconsole.log(finishDbCount, dbCount)\n\t\t\t\t\t\t\t\tif (finishDbCount == dbCount) {\n\t\t\t\t\t\t\t\t\tthis.loadEnd();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\n\t\t\t\t\t\tif (block.gIdx == '0') {\n\t\t\t\t\t\t\tconst rectInfo = {\n\t\t\t\t\t\t\t\tnode: n,\n\t\t\t\t\t\t\t\taudio_url: block.audio_url ,\n\t\t\t\t\t\t\t\trect: {\n\t\t\t\t\t\t\t\t\tx: block.rect.x / baseRect.width,\n\t\t\t\t\t\t\t\t\ty: block.rect.y / baseRect.height,\n\t\t\t\t\t\t\t\t\twidth: block.rect.width / baseRect.width,\n\t\t\t\t\t\t\t\t\theight: block.rect.height / baseRect.height,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tthis._figurePointRectArray.push(rectInfo);\n\n\t\t\t\t\t\t\t// this.addRectNodeListener(block);\n\t\t\n\t\t\t\t\t\t\tif (block.labelText) {\n\t\t\t\t\t\t\t\tconst k = +block.labelText * 1000;\n\t\t\t\t\t\t\t\tif(!isNaN(k)) {\n\t\t\t\t\t\t\t\t\tthis._hintsNodeList.push({\n\t\t\t\t\t\t\t\t\t\tnode: n,\n\t\t\t\t\t\t\t\t\t\tafter: k\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\t\n\t\t\t// console.log(this.data);\n\t\t\tconsole.log('resource perload finish');\n\n// <<<<<<< HEAD\n// =======\n// \t\t\tif (window && window[\"air\"]) {\n// \t\t\t\t// cc.find('Canvas').opacity = 0;\n// \t\t\t\twindow.air.onCourseInScreen = (next) => {\n// \t\t\t\t\t// cc.find('Canvas').opacity = 255;\n// \t\t\t\t\tthis.loadEnd();\n// \t\t\t\t\tnext();\n// \t\t\t\t}\n// \t\t\t\twindow.air.hideAirClassLoading();\n// \t\t\t} else {\n// \t\t\t\tthis.loadEnd();\n// \t\t\t}\n// >>>>>>> 2d461e1910571bcfc6ad4dc93c2cedafc20923ea\n\n\t\t\tcc.debug.setDisplayStats(false);\n\t\t});\n\t},\n\n\n\tloadEnd() {\n\t\tif (window && window[\"air\"] && window[\"air\"].hideAirClassLoading) {\n\t\t\twindow[\"air\"].hideAirClassLoading();\n\t\t}\n\t\tthis.initData();\n\t\t// this.initAudio();\n\t\t// this.initView();\n\t\tthis.initBg();\n\t\t// this.initListener();\n\t\tthis.debugGraphics();\n\t\tthis.createStateMachine();\n\t},\n\n\t_cantouch: null,\n\tinitData() {\n\t\t// 所有全局å˜é‡ 默认都是null \n\t\tthis._cantouch = true;\n\t},\n\n\t// audioBtn: null,\n\t// initAudio() {\n\t// \tconst audioNode = cc.find('Canvas/res/audio');\n\n\t// \tconst getAudioByResName = (resName) => {\n\t// \t\treturn audioNode.getChildByName(resName).getComponent(cc.AudioSource);\n\t// \t}\n\n\t// \tthis.audioBtn = getAudioByResName('btn');\n\n\t// },\n\n\n\t// initView() {\n\n\t// \t// this.initBg();\n\t// \t// this.initPic();\n\t// \t// this.initBtn();\n\t// \tthis.initIcon();\n\t// },\n\n\taddRectNodeListener(data) {\n\n\n\t\tconst bg = cc.find(`Canvas/frame-border/ground/bg`).parent;\n\n\t\tconst rate = (bg.scale * bg.width) / this.data.bgItem.rect.width;\n\n\t\tconst rectNode = new cc.Node();\n\t\trectNode.name = 'rect' + data.index;\n\t\tbg.addChild(rectNode, 20);\n\n\n\t\tconst ctx = rectNode.addComponent(cc.Graphics);\n\t\t// 红色矩形\n\t\tctx.lineWidth = 4;\n\t\tctx.strokeColor = cc.Color.BLACK;\n\t\tctx.fillColor = cc.Color.WHITE.setA(100);\n\n\t\tconst scale = rate / bg.scaleY;\n\n\t\tconsole.log('scale~ : ', scale)\n\n\t\trectNode.width = data.rect.width * scale;\n\t\trectNode.height = data.rect.height * scale;\n\t\trectNode.x = -bg.width / 2 + data.rect.x * scale + bg.x;\n\t\trectNode.y = bg.height / 2 - data.rect.height * scale - data.rect.y * scale + bg.y;\n\n\t\trectNode.anchorX = rectNode.anchorY = 0;\n\n\t\tconsole.log('data: ', data);\n\t\tconsole.log('rectNode: ', rectNode);\n\n\n\t\t// if (pageData.bgItem.isShowDebugLine) {\n\t\t\tctx.rect(0, 0, rectNode.width, rectNode.height);\n\t\t\t// ctx.fillRect(0, 0, 200, 200);\n\t\t// }\n\t\tctx.stroke();\n\t\tctx.fill();\n\n\t\trectNode.addComponent(cc.Button);\n\t\trectNode.on(\"click\", () => {\n\t\t\tconsole.log(\" in rectNode click\");\n\n\n\t\t\tconst _x = rectNode.x / bg.width;\n\t\t\tconst _y = rectNode.y / bg.height;\n\t\t\tconst _w = rectNode.width / bg.width;\n\t\t\tconst _h = rectNode.height / bg.height;\n\n\t\t\tconst pos = {\n\t\t\t\tx: _x + _w / 2 + 0.5,\n\t\t\t\ty: -(_y + _h / 2 - 0.5)\n\t\t\t}\n\t\t\tthis._lastFingerPosition = {\n\t\t\t\tpos: pos,\n\t\t\t\tdirty: true\n\t\t\t};\n\n\t\t})\n\n\t},\n\n\tinitBg() {\n\t\tconst bgNode = cc.find('Canvas/bg');\n\t\tbgNode.scale = this._mapScaleMax;\n\t\tconsole.log('this._mapScaleMax', this._mapScaleMax);\n\t},\n\n\t\n\t\n\n\t/*initBtn() {\n\n\t\tthis.curPage = 0;\n\t\tconst bottomPart = cc.find('Canvas/bottomPart');\n\t\tbottomPart.zIndex = 5; // æé«˜å±‚级\n\n\t\tbottomPart.x = bottomPart.parent.width / 2;\n\t\tbottomPart.y = -bottomPart.parent.height / 2;\n\n\t\tconst leftBtnNode = bottomPart.getChildByName('btn_left');\n\t\t//èŠ‚ç‚¹ä¸æ·»åŠ äº†button组件 则å¯ä»¥æ·»åŠ click事件监å¬\n\t\tleftBtnNode.on('click', () => {\n\t\t\tif (!this._cantouch) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (this.curPage == 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.curPage = 0\n\t\t\tthis.leftMove();\n\n\t\t\t// 游æˆç»“æŸæ—¶éœ€è¦è°ƒç”¨è¿™ä¸ªæ–¹æ³•通知系统作业完æˆ\n\t\t\tonHomeworkFinish();\n\n\t\t\tcc.audioEngine.play(this.audioBtn.clip, false, 0.8)\n\t\t})\n\n\t\tconst rightBtnNode = bottomPart.getChildByName('btn_right');\n\t\t//èŠ‚ç‚¹ä¸æ·»åŠ äº†button组件 则å¯ä»¥æ·»åŠ click事件监å¬\n\t\trightBtnNode.on('click', () => {\n\t\t\tif (!this._cantouch) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (this.curPage == 1) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.curPage = 1\n\t\t\tthis.rightMove();\n\n\t\t\tcc.audioEngine.play(this.audioBtn.clip, false, 0.5)\n\t\t})\n\t},*/\n\n\n\n\n\t// update (dt) {},\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\t_timeoutIds: null,\n\t_intervalIds: null,\n\t// 生命周期\n\tonDestroy() {\n\t\tconsole.log('op15 onDestroy');\n\t\tthis._timeoutIds.forEach(id => {\n\t\t\tclearTimeout(id);\n\t\t});\n\t\tthis._intervalIds.forEach(id => {\n\t\t\tclearInterval(id);\n\t\t});\n\t\tthis.gameMachineService.stopChild();\n\t\tthis.gameMachineService.stop();\n\t\tif(window.courseware && window.courseware.closeOsmoFingerRead) {\n\t\t\tif (this.isOpenedOsmoFingerRead) {\n\t\t\t\twindow.courseware.closeOsmoFingerRead()\n\t\t\t}\n\t\t}\n\t},\n\n\n\n\n\n});\n"]} \ No newline at end of file diff --git a/temp/startup.json b/temp/startup.json index 109cd37..03ab624 100644 --- a/temp/startup.json +++ b/temp/startup.json @@ -1 +1 @@ -{"pid":6216} +{"pid":2139} -- 2.21.0