printer-pdf 5.2.1 → 5.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE CHANGED
@@ -12,10 +12,10 @@ furnished to do so, subject to the following conditions:
12
12
  The above copyright notice and this permission notice shall be included in all
13
13
  copies or substantial portions of the Software.
14
14
 
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
15
+ The Software Is Provided "As Is" Without Warranty Of Any Kind Express Or
16
+ Implied Including But Not Limited To The Warranties Of Merchantability,
17
+ Fitness For A Particular Purpose And Noninfringement, In No Event Shall The
18
+ Authors Or Copyright Holders Be Liable For Any Claim Damages Or Other
19
+ Liability Whether In An Action Of Contract, Tort Or Otherwise, Arising From,
20
+ Out Of Or In Connection With The Software Or The Use Or Other Dealings In The
21
+ Software.
package/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
  `printer-java`](https://github.com/LyingDoc/printer) 中的 jar 包实现的项目。
8
8
 
9
9
  [![Version](https://img.shields.io/npm/v/printer-pdf.svg)](https://www.npmjs.com/package/printer-pdf)
10
- [![GitHub stars](https://img.shields.io/github/stars/LyingDoc/printer-pdf?label=Star&maxAge=2592000)](https://github.com/LyingDoc/pdf-printer/stargazers)
10
+ [![GitHub stars](https://img.shields.io/github/stars/LyingDoc/printer-pdf?label=Star&maxAge=2592000)](https://github.com/LyingDoc/printer-pdf/stargazers)
11
11
  [![Downloads/week](https://img.shields.io/npm/dw/printer-pdf.svg)](https://www.npmjs.com/package/printer-pdf)
12
12
  [![Downloads/total](https://img.shields.io/npm/dt/printer-pdf.svg)](https://npmjs.org/package/printer-pdf)<!-- gh-dependents-info-used-by-start -->
13
13
  [![GitHub contributors](https://img.shields.io/github/contributors/LyingDoc/printer-pdf.svg)](https://gitHub.com/LyingDoc/printer-pdf/graphs/contributors/)
@@ -37,7 +37,7 @@ npm install printer-pdf --save #npm安装依赖
37
37
  yarn add printer-pdf #yarn安装依赖
38
38
  ```
39
39
 
40
- ## Usage [Example](https://github.com/LyingDoc/pdf-printer/blob/master/test/index.ts)
40
+ ## Usage [Example](https://github.com/LyingDoc/printer-pdf/blob/master/test/index.ts)
41
41
 
42
42
  - TypeScript 用法
43
43
 
@@ -49,8 +49,6 @@ import {
49
49
  print,
50
50
  getPrinters,
51
51
  } from "printer-pdf";
52
-
53
-
54
52
  ```
55
53
 
56
54
  - JavaScript 用法
@@ -238,7 +236,7 @@ const {
238
236
  | printerName | string | 打印机名称 |
239
237
  | taskNumber | number | 任务编号 |
240
238
  | status | number | 状态码 |
241
- | statusMsg | number | 状态信息 |
239
+ | statusMsg | string | 状态信息 |
242
240
  | paperSizes | [PaperSizeType[]](#paperSizeType) | 纸张尺寸列表 |
243
241
 
244
242
  ### <a id="paperSizeType"></a>PaperSizeType
package/index.d.ts CHANGED
@@ -2,4 +2,4 @@ export { default as print } from "./print/print";
2
2
  export { default as getPrinters } from "./get-printers/get-printers";
3
3
  export { default as getDefaultPrinter } from "./get-default-printer/get-default-printer";
4
4
  export { getPaperSizeInfo, getPaperSizeInfoAll, } from "./get-paper-size/get-paper-size-info";
5
- export type { PrintOptions, Printer, PaperSizeType, PaperSizesInfoType, paperSizeInfoOptions } from "./types";
5
+ export type { PrintOptions, Printer, PaperSizeType, PaperSizesInfoType, paperSizeInfoOptions, } from "./types";
package/index.js CHANGED
@@ -1,2 +1,2 @@
1
- !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var r in n)("object"==typeof exports?exports:e)[r]=n[r]}}(global,()=>(()=>{"use strict";var e={704(e){e.exports=require("java-caller")}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var a=t[r]={exports:{}};return e[r](a,a.exports,n),a.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};n.r(r),n.d(r,{getDefaultPrinter:()=>D,getPaperSizeInfo:()=>V,getPaperSizeInfoAll:()=>M,getPrinters:()=>R,print:()=>B});const o=require("fs");var a,i,c,u,s,l,f,p,b=n.n(o);!function(e){e.ISO_A0="iso-a0",e.ISO_A1="iso-a1",e.ISO_A2="iso-a2",e.ISO_A3="iso-a3",e.ISO_A4="iso-a4",e.ISO_A5="iso-a5",e.ISO_A6="iso-a6",e.ISO_A7="iso-a7",e.ISO_A8="iso-a8",e.ISO_A9="iso-a9",e.ISO_A10="iso-a10",e.ISO_B0="iso-b0",e.ISO_B1="iso-b1",e.ISO_B2="iso-b2",e.ISO_B3="iso-b3",e.ISO_B4="iso-b4",e.ISO_B5="iso-b5",e.ISO_B6="iso-b6",e.ISO_B7="iso-b7",e.ISO_B8="iso-b8",e.ISO_B9="iso-b9",e.ISO_B10="iso-b10",e.JIS_B0="jis-b0",e.JIS_B1="jis-b1",e.JIS_B2="jis-b2",e.JIS_B3="jis-b3",e.JIS_B4="jis-b4",e.JIS_B5="jis-b5",e.JIS_B6="jis-b6",e.JIS_B7="jis-b7",e.JIS_B8="jis-b8",e.JIS_B9="jis-b9",e.JIS_B10="jis-b10",e.ISO_C0="iso-c0",e.ISO_C1="iso-c1",e.ISO_C2="iso-c2",e.ISO_C3="iso-c3",e.ISO_C4="iso-c4",e.ISO_C5="iso-c5",e.ISO_C6="iso-c6",e.NA_LETTER="na-letter",e.NA_LEGAL="na-legal",e.EXECUTIVE="executive",e.LEDGER="ledger",e.TABLOID="tabloid",e.INVOICE="invoice",e.FOLIO="folio",e.QUARTO="quarto",e.JAPANESE_POSTCARD="japanese-postcard",e.JAPANESE_DOUBLE_POSTCARD="oufuko-postcard",e.A="a",e.B="b",e.C="c",e.D="d",e.E="e",e.ISO_DESIGNATED_LONG="iso-designated-long",e.ITALY_ENVELOPE="italian-envelope",e.MONARCH_ENVELOPE="monarch-envelope",e.PERSONAL_ENVELOPE="personal-envelope",e.NA_NUMBER_9_ENVELOPE="na-number-9-envelope",e.NA_NUMBER_10_ENVELOPE="na-number-10-envelope",e.NA_NUMBER_11_ENVELOPE="na-number-11-envelope",e.NA_NUMBER_12_ENVELOPE="na-number-12-envelope",e.NA_NUMBER_14_ENVELOPE="na-number-14-envelope",e.NA_6X9_ENVELOPE="na-6x9-envelope",e.NA_7X9_ENVELOPE="na-7x9-envelope",e.NA_9X11_ENVELOPE="na-9x11-envelope",e.NA_9X12_ENVELOPE="na-9x12-envelope",e.NA_10X13_ENVELOPE="na-10x13-envelope",e.NA_10X14_ENVELOPE="na-10x14-envelope",e.NA_10X15_ENVELOPE="na-10x15-envelope",e.NA_5X7="na-5x7",e.NA_8X10="na-8x10"}(a||(a={})),function(e){e.MONOCHROME="monochrome",e.COLOR="color"}(i||(i={})),function(e){e.ONE_SIDED="one-sided",e.TWO_SIDED_LONG_EDGE="two-sided-long-edge",e.TWO_SIDED_SHORT_EDGE="two-sided-short-edge"}(c||(c={})),function(e){e.TOP="top",e.MIDDLE="middle",e.BOTTOM="bottom",e.ENVELOPE="envelope",e.MANUAL="manual",e.LARGE_CAPACITY="large-capacity",e.MAIN="main",e.SIDE="side"}(u||(u={})),function(e){e.PORTRAIT="portrait",e.LANDSCAPE="landscape",e.REVERSE_LANDSCAPE="reverseLandscape",e.REVERSE_PORTRAIT="reversePortrait"}(s||(s={})),function(e){e.ACTUAL_SIZE="actual-size",e.SHRINK_TO_FIT="shrink-to-fits",e.STRETCH_TO_FIT="stretch-to-fits",e.SCALE_TO_FIT="scale-to-fits"}(l||(l={})),function(e){e.ALL="all",e.ODD="odd",e.EVEN="even"}(f||(f={})),function(e){e.DEFAULT="default",e.PRINTERS="printers",e.SIZEINFO="sizeInfo",e.SIZEINFOS="sizeInfos",e.PRINT="print"}(p||(p={}));const v=require("node:path"),h=require("node:process"),d=""in h.versions&&h.argv.some(e=>e?.includes("app.asar")),E=(h.versions.electron,e=>d?e.replaceAll("app.asar","app.asar.unpacked"):e),y=require("node:os"),_=require("find-java-home");var O=n.n(_),S=function(e,t,n,r){return new(n||(n=Promise))(function(o,a){function i(e){try{u(r.next(e))}catch(e){a(e)}}function c(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(i,c)}u((r=r.apply(e,t||[])).next())})},I=function(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=c(0),i.throw=c(1),i.return=c(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(c){return function(u){return function(c){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==c[0]&&2!==c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,u])}}},w=n(704).JavaCaller,N=(0,v.join)(__dirname,"printer.jar"),A=E(N),g=["-Dfile.encoding=UTF-8"];"linux"==y.platform()&&g.push("-Djavax.accessibility.assistive_technologies=' '");var m="".concat(A);function x(){return S(this,void 0,void 0,function(){var e,t,n;return I(this,function(r){switch(r.label){case 0:return e=null,[4,new Promise(function(e,t){O()({allowJre:!0},function(n,r){n||!r?t(n||new Error("Java Home not found")):e(r)})})];case 1:return t=r.sent(),e=new w({jar:m,mainClass:"com.tk.lyin.Printers",additionalJavaArgs:g}),t&&(n="win32"===y.platform()?"java.exe":"java",e.javaExecutable=E((0,v.join)(t,"bin",n))),[2,e]}})})}var P=function(e){return S(void 0,void 0,void 0,function(){var t,n,r;return I(this,function(o){switch(o.label){case 0:return(t=[]).push(e.arg),e.printerName&&t.push(e.printerName),[4,x()];case 1:return[4,o.sent().run(t)];case 2:return(n=o.sent()).status,r=n.stdout,n.stderr,[2,r?r.trim():"{}"]}})})},T=function(e,t){return S(void 0,void 0,void 0,function(){var n,r,o;return I(this,function(a){switch(a.label){case 0:return[4,x()];case 1:return n=a.sent(),r=Buffer.from(JSON.stringify(t).trim()).toString("base64"),[4,n.run([e.arg,r])];case 2:return(o=a.sent()).status,o.stdout,o.stderr,[2]}})})},L=function(e,t,n,r){return new(n||(n=Promise))(function(o,a){function i(e){try{u(r.next(e))}catch(e){a(e)}}function c(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(i,c)}u((r=r.apply(e,t||[])).next())})},j=function(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=c(0),i.throw=c(1),i.return=c(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(c){return function(u){return function(c){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==c[0]&&2!==c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,u])}}};function B(e){return L(this,void 0,void 0,function(){var t;return j(this,function(n){switch(n.label){case 0:if(!(t=e.pdf))throw"No PDF specified";if(!b().existsSync(t))throw"No such file";return[4,T({arg:p.PRINT},e)];case 1:return n.sent(),[2]}})})}const R=function(){return e=this,t=void 0,r=function(){var e;return function(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=c(0),i.throw=c(1),i.return=c(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(c){return function(u){return function(c){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==c[0]&&2!==c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,u])}}}(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),[4,P({arg:p.PRINTERS})];case 1:return e=t.sent(),[2,JSON.parse(e)];case 2:throw t.sent();case 3:return[2]}})},new((n=void 0)||(n=Promise))(function(o,a){function i(e){try{u(r.next(e))}catch(e){a(e)}}function c(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(i,c)}u((r=r.apply(e,t||[])).next())});var e,t,n,r};const D=function(){return e=this,t=void 0,r=function(){var e;return function(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=c(0),i.throw=c(1),i.return=c(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(c){return function(u){return function(c){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==c[0]&&2!==c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,u])}}}(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),[4,P({arg:p.DEFAULT})];case 1:return e=t.sent(),[2,JSON.parse(e)];case 2:throw t.sent();case 3:return[2]}})},new((n=void 0)||(n=Promise))(function(o,a){function i(e){try{u(r.next(e))}catch(e){a(e)}}function c(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(i,c)}u((r=r.apply(e,t||[])).next())});var e,t,n,r};var k=function(e,t,n,r){return new(n||(n=Promise))(function(o,a){function i(e){try{u(r.next(e))}catch(e){a(e)}}function c(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(i,c)}u((r=r.apply(e,t||[])).next())})},C=function(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=c(0),i.throw=c(1),i.return=c(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(c){return function(u){return function(c){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==c[0]&&2!==c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,u])}}},J=function(e,t,n){if(n||2===arguments.length)for(var r,o=0,a=t.length;o<a;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))},V=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return k(void 0,J([],e,!0),void 0,function(e){var t;return void 0===e&&(e={printer:""}),C(this,function(n){switch(n.label){case 0:return n.trys.push([0,2,,3]),[4,P({arg:p.SIZEINFO,printerName:e.printer})];case 1:return t=n.sent(),[2,JSON.parse(t)];case 2:throw n.sent();case 3:return[2]}})})},M=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return k(void 0,J([],e,!0),void 0,function(e){var t;return void 0===e&&(e={}),C(this,function(e){switch(e.label){case 0:return e.trys.push([0,2,,3]),[4,P({arg:p.SIZEINFOS})];case 1:return t=e.sent(),[2,JSON.parse(t)];case 2:throw e.sent();case 3:return[2]}})})};return r})());
2
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,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LFVBQVVsRCxPQUFReUQsSUFDcENELEVBQU9DLEdBQU1QLFVBQVVPLEdBRTNCLE9BQU8sT0FBZSxFQUFHVixFQUFjLEdBQUlTLEdBQVEsUUFBWSxFQUFHLFNBQVVFLEdBQ3hFLElBQUlsRixFQUVKLFlBRHFCLElBQWpCa0YsSUFBc0JBLEVBQVUsQ0FBQyxHQUM5QixFQUFZL0QsS0FBTSxTQUFVa0IsR0FDL0IsT0FBUUEsRUFBRzNCLE9BQ1AsS0FBSyxFQUVELE9BREEyQixFQUFHekIsS0FBS2EsS0FBSyxDQUFDLEVBQUcsRUFBRyxDQUFFLElBQ2YsQ0FBQyxFQUFhcUIsRUFBSSxDQUNqQkssSUFBS3pFLEVBQWUyRyxhQUVoQyxLQUFLLEVBRUQsT0FEQXJGLEVBQVNxQyxFQUFHMUIsT0FDTCxDQUFDLEVBQWNtRCxLQUFLTyxNQUFNckUsSUFDckMsS0FBSyxFQUVELE1BRFVxQyxFQUFHMUIsT0FFakIsS0FBSyxFQUFHLE1BQU8sQ0FBQyxHQUV4QixFQUNKLEVBQ0osRSIsInNvdXJjZXMiOlsid2VicGFjazovL3ByaW50ZXItcGRmL3dlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsIndlYnBhY2s6Ly9wcmludGVyLXBkZi9leHRlcm5hbCBjb21tb25qcyBcImphdmEtY2FsbGVyXCIiLCJ3ZWJwYWNrOi8vcHJpbnRlci1wZGYvd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vcHJpbnRlci1wZGYvd2VicGFjay9ydW50aW1lL2NvbXBhdCBnZXQgZGVmYXVsdCBleHBvcnQiLCJ3ZWJwYWNrOi8vcHJpbnRlci1wZGYvd2VicGFjay9ydW50aW1lL2RlZmluZSBwcm9wZXJ0eSBnZXR0ZXJzIiwid2VicGFjazovL3ByaW50ZXItcGRmL3dlYnBhY2svcnVudGltZS9oYXNPd25Qcm9wZXJ0eSBzaG9ydGhhbmQiLCJ3ZWJwYWNrOi8vcHJpbnRlci1wZGYvd2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCIsIndlYnBhY2s6Ly9wcmludGVyLXBkZi9leHRlcm5hbCBub2RlLWNvbW1vbmpzIFwiZnNcIiIsIndlYnBhY2s6Ly9wcmludGVyLXBkZi8uL3NyYy90eXBlcy9pbmRleC50cyIsIndlYnBhY2s6Ly9wcmludGVyLXBkZi9leHRlcm5hbCBub2RlLWNvbW1vbmpzIFwibm9kZTpwYXRoXCIiLCJ3ZWJwYWNrOi8vcHJpbnRlci1wZGYvZXh0ZXJuYWwgbm9kZS1jb21tb25qcyBcIm5vZGU6cHJvY2Vzc1wiIiwid2VicGFjazovL3ByaW50ZXItcGRmLy4vbm9kZV9tb2R1bGVzL2VsZWN0cm9uLXV0aWwvZGlzdHJpYnV0aW9uL25vZGUvaW5kZXguanMiLCJ3ZWJwYWNrOi8vcHJpbnRlci1wZGYvZXh0ZXJuYWwgbm9kZS1jb21tb25qcyBcIm5vZGU6b3NcIiIsIndlYnBhY2s6Ly9wcmludGVyLXBkZi9leHRlcm5hbCBjb21tb25qcyBcImZpbmQtamF2YS1ob21lXCIiLCJ3ZWJwYWNrOi8vcHJpbnRlci1wZGYvLi9zcmMvdXRpbHMvamF2YS11dGlsLnRzIiwid2VicGFjazovL3ByaW50ZXItcGRmLy4vc3JjL3ByaW50L3ByaW50LnRzIiwid2VicGFjazovL3ByaW50ZXItcGRmLy4vc3JjL2dldC1wcmludGVycy9nZXQtcHJpbnRlcnMudHMiLCJ3ZWJwYWNrOi8vcHJpbnRlci1wZGYvLi9zcmMvZ2V0LWRlZmF1bHQtcHJpbnRlci9nZXQtZGVmYXVsdC1wcmludGVyLnRzIiwid2VicGFjazovL3ByaW50ZXItcGRmLy4vc3JjL2dldC1wYXBlci1zaXplL2dldC1wYXBlci1zaXplLWluZm8udHMiXSwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uIHdlYnBhY2tVbml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uKHJvb3QsIGZhY3RvcnkpIHtcblx0aWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgPT09ICdvYmplY3QnKVxuXHRcdG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeSgpO1xuXHRlbHNlIGlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZClcblx0XHRkZWZpbmUoW10sIGZhY3RvcnkpO1xuXHRlbHNlIHtcblx0XHR2YXIgYSA9IGZhY3RvcnkoKTtcblx0XHRmb3IodmFyIGkgaW4gYSkgKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyA/IGV4cG9ydHMgOiByb290KVtpXSA9IGFbaV07XG5cdH1cbn0pKGdsb2JhbCwgKCkgPT4ge1xucmV0dXJuICIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImphdmEtY2FsbGVyXCIpOyIsIi8vIFRoZSBtb2R1bGUgY2FjaGVcbnZhciBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18gPSB7fTtcblxuLy8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbmZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG5cdHZhciBjYWNoZWRNb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdO1xuXHRpZiAoY2FjaGVkTW9kdWxlICE9PSB1bmRlZmluZWQpIHtcblx0XHRyZXR1cm4gY2FjaGVkTW9kdWxlLmV4cG9ydHM7XG5cdH1cblx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcblx0dmFyIG1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF0gPSB7XG5cdFx0Ly8gbm8gbW9kdWxlLmlkIG5lZWRlZFxuXHRcdC8vIG5vIG1vZHVsZS5sb2FkZWQgbmVlZGVkXG5cdFx0ZXhwb3J0czoge31cblx0fTtcblxuXHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cblx0X193ZWJwYWNrX21vZHVsZXNfX1ttb2R1bGVJZF0obW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cblx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcblx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xufVxuXG4iLCIvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuX193ZWJwYWNrX3JlcXVpcmVfXy5uID0gKG1vZHVsZSkgPT4ge1xuXHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cblx0XHQoKSA9PiAobW9kdWxlWydkZWZhdWx0J10pIDpcblx0XHQoKSA9PiAobW9kdWxlKTtcblx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgeyBhOiBnZXR0ZXIgfSk7XG5cdHJldHVybiBnZXR0ZXI7XG59OyIsIi8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb25zIGZvciBoYXJtb255IGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uZCA9IChleHBvcnRzLCBkZWZpbml0aW9uKSA9PiB7XG5cdGZvcih2YXIga2V5IGluIGRlZmluaXRpb24pIHtcblx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZGVmaW5pdGlvbiwga2V5KSAmJiAhX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIGtleSkpIHtcblx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBrZXksIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBkZWZpbml0aW9uW2tleV0gfSk7XG5cdFx0fVxuXHR9XG59OyIsIl9fd2VicGFja19yZXF1aXJlX18ubyA9IChvYmosIHByb3ApID0+IChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKSkiLCIvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSAoZXhwb3J0cykgPT4ge1xuXHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcblx0fVxuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xufTsiLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcImZzXCIpOyIsIi8vIOe6uOW8oOWkp+Wwj1xuZXhwb3J0IHZhciBNZWRpYVNpemVOYW1lO1xuKGZ1bmN0aW9uIChNZWRpYVNpemVOYW1lKSB7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19BMFwiXSA9IFwiaXNvLWEwXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19BMVwiXSA9IFwiaXNvLWExXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19BMlwiXSA9IFwiaXNvLWEyXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19BM1wiXSA9IFwiaXNvLWEzXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19BNFwiXSA9IFwiaXNvLWE0XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19BNVwiXSA9IFwiaXNvLWE1XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19BNlwiXSA9IFwiaXNvLWE2XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19BN1wiXSA9IFwiaXNvLWE3XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19BOFwiXSA9IFwiaXNvLWE4XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19BOVwiXSA9IFwiaXNvLWE5XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19BMTBcIl0gPSBcImlzby1hMTBcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0IwXCJdID0gXCJpc28tYjBcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0IxXCJdID0gXCJpc28tYjFcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0IyXCJdID0gXCJpc28tYjJcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0IzXCJdID0gXCJpc28tYjNcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0I0XCJdID0gXCJpc28tYjRcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0I1XCJdID0gXCJpc28tYjVcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0I2XCJdID0gXCJpc28tYjZcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0I3XCJdID0gXCJpc28tYjdcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0I4XCJdID0gXCJpc28tYjhcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0I5XCJdID0gXCJpc28tYjlcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0IxMFwiXSA9IFwiaXNvLWIxMFwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJKSVNfQjBcIl0gPSBcImppcy1iMFwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJKSVNfQjFcIl0gPSBcImppcy1iMVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJKSVNfQjJcIl0gPSBcImppcy1iMlwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJKSVNfQjNcIl0gPSBcImppcy1iM1wiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJKSVNfQjRcIl0gPSBcImppcy1iNFwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJKSVNfQjVcIl0gPSBcImppcy1iNVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJKSVNfQjZcIl0gPSBcImppcy1iNlwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJKSVNfQjdcIl0gPSBcImppcy1iN1wiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJKSVNfQjhcIl0gPSBcImppcy1iOFwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJKSVNfQjlcIl0gPSBcImppcy1iOVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJKSVNfQjEwXCJdID0gXCJqaXMtYjEwXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19DMFwiXSA9IFwiaXNvLWMwXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19DMVwiXSA9IFwiaXNvLWMxXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19DMlwiXSA9IFwiaXNvLWMyXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19DM1wiXSA9IFwiaXNvLWMzXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19DNFwiXSA9IFwiaXNvLWM0XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19DNVwiXSA9IFwiaXNvLWM1XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19DNlwiXSA9IFwiaXNvLWM2XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIk5BX0xFVFRFUlwiXSA9IFwibmEtbGV0dGVyXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIk5BX0xFR0FMXCJdID0gXCJuYS1sZWdhbFwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJFWEVDVVRJVkVcIl0gPSBcImV4ZWN1dGl2ZVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJMRURHRVJcIl0gPSBcImxlZGdlclwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJUQUJMT0lEXCJdID0gXCJ0YWJsb2lkXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklOVk9JQ0VcIl0gPSBcImludm9pY2VcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiRk9MSU9cIl0gPSBcImZvbGlvXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIlFVQVJUT1wiXSA9IFwicXVhcnRvXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkpBUEFORVNFX1BPU1RDQVJEXCJdID0gXCJqYXBhbmVzZS1wb3N0Y2FyZFwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJKQVBBTkVTRV9ET1VCTEVfUE9TVENBUkRcIl0gPSBcIm91ZnVrby1wb3N0Y2FyZFwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJBXCJdID0gXCJhXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkJcIl0gPSBcImJcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiQ1wiXSA9IFwiY1wiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJEXCJdID0gXCJkXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkVcIl0gPSBcImVcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0RFU0lHTkFURURfTE9OR1wiXSA9IFwiaXNvLWRlc2lnbmF0ZWQtbG9uZ1wiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJVEFMWV9FTlZFTE9QRVwiXSA9IFwiaXRhbGlhbi1lbnZlbG9wZVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJNT05BUkNIX0VOVkVMT1BFXCJdID0gXCJtb25hcmNoLWVudmVsb3BlXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIlBFUlNPTkFMX0VOVkVMT1BFXCJdID0gXCJwZXJzb25hbC1lbnZlbG9wZVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJOQV9OVU1CRVJfOV9FTlZFTE9QRVwiXSA9IFwibmEtbnVtYmVyLTktZW52ZWxvcGVcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiTkFfTlVNQkVSXzEwX0VOVkVMT1BFXCJdID0gXCJuYS1udW1iZXItMTAtZW52ZWxvcGVcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiTkFfTlVNQkVSXzExX0VOVkVMT1BFXCJdID0gXCJuYS1udW1iZXItMTEtZW52ZWxvcGVcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiTkFfTlVNQkVSXzEyX0VOVkVMT1BFXCJdID0gXCJuYS1udW1iZXItMTItZW52ZWxvcGVcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiTkFfTlVNQkVSXzE0X0VOVkVMT1BFXCJdID0gXCJuYS1udW1iZXItMTQtZW52ZWxvcGVcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiTkFfNlg5X0VOVkVMT1BFXCJdID0gXCJuYS02eDktZW52ZWxvcGVcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiTkFfN1g5X0VOVkVMT1BFXCJdID0gXCJuYS03eDktZW52ZWxvcGVcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiTkFfOVgxMV9FTlZFTE9QRVwiXSA9IFwibmEtOXgxMS1lbnZlbG9wZVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJOQV85WDEyX0VOVkVMT1BFXCJdID0gXCJuYS05eDEyLWVudmVsb3BlXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIk5BXzEwWDEzX0VOVkVMT1BFXCJdID0gXCJuYS0xMHgxMy1lbnZlbG9wZVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJOQV8xMFgxNF9FTlZFTE9QRVwiXSA9IFwibmEtMTB4MTQtZW52ZWxvcGVcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiTkFfMTBYMTVfRU5WRUxPUEVcIl0gPSBcIm5hLTEweDE1LWVudmVsb3BlXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIk5BXzVYN1wiXSA9IFwibmEtNXg3XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIk5BXzhYMTBcIl0gPSBcIm5hLTh4MTBcIjtcbn0pKE1lZGlhU2l6ZU5hbWUgfHwgKE1lZGlhU2l6ZU5hbWUgPSB7fSkpO1xuLy8g6K6+572u6Imy5b2pXG5leHBvcnQgdmFyIENocm9tYXRpY2l0eTtcbihmdW5jdGlvbiAoQ2hyb21hdGljaXR5KSB7XG4gICAgQ2hyb21hdGljaXR5W1wiTU9OT0NIUk9NRVwiXSA9IFwibW9ub2Nocm9tZVwiO1xuICAgIENocm9tYXRpY2l0eVtcIkNPTE9SXCJdID0gXCJjb2xvclwiO1xufSkoQ2hyb21hdGljaXR5IHx8IChDaHJvbWF0aWNpdHkgPSB7fSkpO1xuLy8g6K6+572u5Y+M6Z2i5omT5Y2wXG5leHBvcnQgdmFyIFNpZGVzO1xuKGZ1bmN0aW9uIChTaWRlcykge1xuICAgIFNpZGVzW1wiT05FX1NJREVEXCJdID0gXCJvbmUtc2lkZWRcIjtcbiAgICBTaWRlc1tcIlRXT19TSURFRF9MT05HX0VER0VcIl0gPSBcInR3by1zaWRlZC1sb25nLWVkZ2VcIjtcbiAgICBTaWRlc1tcIlRXT19TSURFRF9TSE9SVF9FREdFXCJdID0gXCJ0d28tc2lkZWQtc2hvcnQtZWRnZVwiOyAvLyDlj4zpnaLnn63ovrlcbn0pKFNpZGVzIHx8IChTaWRlcyA9IHt9KSk7XG4vLyDloqjnm5LnsbvlnotcbmV4cG9ydCB2YXIgTWVkaWFUcmF5O1xuKGZ1bmN0aW9uIChNZWRpYVRyYXkpIHtcbiAgICBNZWRpYVRyYXlbXCJUT1BcIl0gPSBcInRvcFwiO1xuICAgIE1lZGlhVHJheVtcIk1JRERMRVwiXSA9IFwibWlkZGxlXCI7XG4gICAgTWVkaWFUcmF5W1wiQk9UVE9NXCJdID0gXCJib3R0b21cIjtcbiAgICBNZWRpYVRyYXlbXCJFTlZFTE9QRVwiXSA9IFwiZW52ZWxvcGVcIjtcbiAgICBNZWRpYVRyYXlbXCJNQU5VQUxcIl0gPSBcIm1hbnVhbFwiO1xuICAgIE1lZGlhVHJheVtcIkxBUkdFX0NBUEFDSVRZXCJdID0gXCJsYXJnZS1jYXBhY2l0eVwiO1xuICAgIE1lZGlhVHJheVtcIk1BSU5cIl0gPSBcIm1haW5cIjtcbiAgICBNZWRpYVRyYXlbXCJTSURFXCJdID0gXCJzaWRlXCI7XG59KShNZWRpYVRyYXkgfHwgKE1lZGlhVHJheSA9IHt9KSk7XG4vLyDorr7nva7miZPljbDmnLrmlrnlkJFcbmV4cG9ydCB2YXIgT3JpZW50YXRpb25SZXF1ZXN0ZWQ7XG4oZnVuY3Rpb24gKE9yaWVudGF0aW9uUmVxdWVzdGVkKSB7XG4gICAgT3JpZW50YXRpb25SZXF1ZXN0ZWRbXCJQT1JUUkFJVFwiXSA9IFwicG9ydHJhaXRcIjtcbiAgICBPcmllbnRhdGlvblJlcXVlc3RlZFtcIkxBTkRTQ0FQRVwiXSA9IFwibGFuZHNjYXBlXCI7XG4gICAgT3JpZW50YXRpb25SZXF1ZXN0ZWRbXCJSRVZFUlNFX0xBTkRTQ0FQRVwiXSA9IFwicmV2ZXJzZUxhbmRzY2FwZVwiO1xuICAgIE9yaWVudGF0aW9uUmVxdWVzdGVkW1wiUkVWRVJTRV9QT1JUUkFJVFwiXSA9IFwicmV2ZXJzZVBvcnRyYWl0XCI7XG59KShPcmllbnRhdGlvblJlcXVlc3RlZCB8fCAoT3JpZW50YXRpb25SZXF1ZXN0ZWQgPSB7fSkpO1xuZXhwb3J0IHZhciBTY2FsaW5nO1xuKGZ1bmN0aW9uIChTY2FsaW5nKSB7XG4gICAgU2NhbGluZ1tcIkFDVFVBTF9TSVpFXCJdID0gXCJhY3R1YWwtc2l6ZVwiO1xuICAgIFNjYWxpbmdbXCJTSFJJTktfVE9fRklUXCJdID0gXCJzaHJpbmstdG8tZml0c1wiO1xuICAgIFNjYWxpbmdbXCJTVFJFVENIX1RPX0ZJVFwiXSA9IFwic3RyZXRjaC10by1maXRzXCI7XG4gICAgU2NhbGluZ1tcIlNDQUxFX1RPX0ZJVFwiXSA9IFwic2NhbGUtdG8tZml0c1wiO1xufSkoU2NhbGluZyB8fCAoU2NhbGluZyA9IHt9KSk7XG5leHBvcnQgdmFyIFN1YnNldDtcbihmdW5jdGlvbiAoU3Vic2V0KSB7XG4gICAgU3Vic2V0W1wiQUxMXCJdID0gXCJhbGxcIjtcbiAgICBTdWJzZXRbXCJPRERcIl0gPSBcIm9kZFwiO1xuICAgIFN1YnNldFtcIkVWRU5cIl0gPSBcImV2ZW5cIjsgLy8g5aWH5pWwXG59KShTdWJzZXQgfHwgKFN1YnNldCA9IHt9KSk7XG5leHBvcnQgdmFyIFByaW50ZXJBY3Rpb25zO1xuKGZ1bmN0aW9uIChQcmludGVyQWN0aW9ucykge1xuICAgIFByaW50ZXJBY3Rpb25zW1wiREVGQVVMVFwiXSA9IFwiZGVmYXVsdFwiO1xuICAgIFByaW50ZXJBY3Rpb25zW1wiUFJJTlRFUlNcIl0gPSBcInByaW50ZXJzXCI7XG4gICAgUHJpbnRlckFjdGlvbnNbXCJTSVpFSU5GT1wiXSA9IFwic2l6ZUluZm9cIjtcbiAgICBQcmludGVyQWN0aW9uc1tcIlNJWkVJTkZPU1wiXSA9IFwic2l6ZUluZm9zXCI7XG4gICAgUHJpbnRlckFjdGlvbnNbXCJQUklOVFwiXSA9IFwicHJpbnRcIjtcbn0pKFByaW50ZXJBY3Rpb25zIHx8IChQcmludGVyQWN0aW9ucyA9IHt9KSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lhVzVrWlhndWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUl1TGk4dUxpOXpjbU12ZEhsd1pYTXZhVzVrWlhndWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJNRUpCTEU5QlFVODdRVUZEVUN4TlFVRk5MRU5CUVU0c1NVRkJXU3hoUVRCRldEdEJRVEZGUkN4WFFVRlpMR0ZCUVdFN1NVRkRja0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYjBOQlFXMUNMRU5CUVVFN1NVRkRia0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYjBOQlFXMUNMRU5CUVVFN1NVRkRia0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYjBOQlFXMUNMRU5CUVVFN1NVRkRia0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzZDBOQlFYVkNMRU5CUVVFN1NVRkRka0lzYzBOQlFYRkNMRU5CUVVFN1NVRkRja0lzZDBOQlFYVkNMRU5CUVVFN1NVRkRka0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYjBOQlFXMUNMRU5CUVVFN1NVRkRia0lzYjBOQlFXMUNMRU5CUVVFN1NVRkRia0lzWjBOQlFXVXNRMEZCUVR0SlFVTm1MR3REUVVGcFFpeERRVUZCTzBsQlEycENMSGRFUVVGMVF5eERRVUZCTzBsQlEzWkRMRFpFUVVFMFF5eERRVUZCTzBsQlF6VkRMSGRDUVVGUExFTkJRVUU3U1VGRFVDeDNRa0ZCVHl4RFFVRkJPMGxCUTFBc2QwSkJRVThzUTBGQlFUdEpRVU5RTEhkQ1FVRlBMRU5CUVVFN1NVRkRVQ3gzUWtGQlR5eERRVUZCTzBsQlExQXNORVJCUVRKRExFTkJRVUU3U1VGRE0wTXNiMFJCUVcxRExFTkJRVUU3U1VGRGJrTXNjMFJCUVhGRExFTkJRVUU3U1VGRGNrTXNkMFJCUVhWRExFTkJRVUU3U1VGRGRrTXNPRVJCUVRaRExFTkJRVUU3U1VGRE4wTXNaMFZCUVN0RExFTkJRVUU3U1VGREwwTXNaMFZCUVN0RExFTkJRVUU3U1VGREwwTXNaMFZCUVN0RExFTkJRVUU3U1VGREwwTXNaMFZCUVN0RExFTkJRVUU3U1VGREwwTXNiMFJCUVcxRExFTkJRVUU3U1VGRGJrTXNiMFJCUVcxRExFTkJRVUU3U1VGRGJrTXNjMFJCUVhGRExFTkJRVUU3U1VGRGNrTXNjMFJCUVhGRExFTkJRVUU3U1VGRGNrTXNkMFJCUVhWRExFTkJRVUU3U1VGRGRrTXNkMFJCUVhWRExFTkJRVUU3U1VGRGRrTXNkMFJCUVhWRExFTkJRVUU3U1VGRGRrTXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNiME5CUVcxQ0xFTkJRVUU3UVVGRGRrSXNRMEZCUXl4RlFURkZWeXhoUVVGaExFdEJRV0lzWVVGQllTeFJRVEJGZUVJN1FVRkhSQ3hQUVVGUE8wRkJRMUFzVFVGQlRTeERRVUZPTEVsQlFWa3NXVUZIV0R0QlFVaEVMRmRCUVZrc1dVRkJXVHRKUVVOd1FpeDVRMEZCZVVJc1EwRkJRVHRKUVVONlFpd3JRa0ZCWlN4RFFVRkJPMEZCUTI1Q0xFTkJRVU1zUlVGSVZ5eFpRVUZaTEV0QlFWb3NXVUZCV1N4UlFVZDJRanRCUVVWRUxGTkJRVk03UVVGRFZDeE5RVUZOTEVOQlFVNHNTVUZCV1N4TFFVbFlPMEZCU2tRc1YwRkJXU3hMUVVGTE8wbEJRMklzWjBOQlFYVkNMRU5CUVVFN1NVRkRka0lzYjBSQlFUSkRMRU5CUVVFN1NVRkRNME1zYzBSQlFUWkRMRU5CUVVFc1EwRkJRU3hQUVVGUE8wRkJRM2hFTEVOQlFVTXNSVUZLVnl4TFFVRkxMRXRCUVV3c1MwRkJTeXhSUVVsb1FqdEJRVVZFTEU5QlFVODdRVUZEVUN4TlFVRk5MRU5CUVU0c1NVRkJXU3hUUVZOWU8wRkJWRVFzVjBGQldTeFRRVUZUTzBsQlEycENMSGRDUVVGWExFTkJRVUU3U1VGRFdDdzRRa0ZCYVVJc1EwRkJRVHRKUVVOcVFpdzRRa0ZCYVVJc1EwRkJRVHRKUVVOcVFpeHJRMEZCY1VJc1EwRkJRVHRKUVVOeVFpdzRRa0ZCYVVJc1EwRkJRVHRKUVVOcVFpdzRRMEZCYVVNc1EwRkJRVHRKUVVOcVF5d3dRa0ZCWVN4RFFVRkJPMGxCUTJJc01FSkJRV0VzUTBGQlFUdEJRVU5xUWl4RFFVRkRMRVZCVkZjc1UwRkJVeXhMUVVGVUxGTkJRVk1zVVVGVGNFSTdRVUZIUkN4VlFVRlZPMEZCUTFZc1RVRkJUU3hEUVVGT0xFbEJRVmtzYjBKQlMxZzdRVUZNUkN4WFFVRlpMRzlDUVVGdlFqdEpRVU0xUWl3MlEwRkJjVUlzUTBGQlFUdEpRVU55UWl3clEwRkJkVUlzUTBGQlFUdEpRVU4yUWl3NFJFRkJjME1zUTBGQlFUdEpRVU4wUXl3MFJFRkJiME1zUTBGQlFUdEJRVU40UXl4RFFVRkRMRVZCVEZjc2IwSkJRVzlDTEV0QlFYQkNMRzlDUVVGdlFpeFJRVXN2UWp0QlFVVkVMRTFCUVUwc1EwRkJUaXhKUVVGWkxFOUJTMWc3UVVGTVJDeFhRVUZaTEU5QlFVODdTVUZEWml4elEwRkJNa0lzUTBGQlFUdEpRVU16UWl3eVEwRkJaME1zUTBGQlFUdEpRVU5vUXl3MlEwRkJhME1zUTBGQlFUdEpRVU5zUXl4NVEwRkJPRUlzUTBGQlFUdEJRVU5zUXl4RFFVRkRMRVZCVEZjc1QwRkJUeXhMUVVGUUxFOUJRVThzVVVGTGJFSTdRVUZGUkN4TlFVRk5MRU5CUVU0c1NVRkJXU3hOUVVsWU8wRkJTa1FzVjBGQldTeE5RVUZOTzBsQlEyUXNjVUpCUVZjc1EwRkJRVHRKUVVOWUxIRkNRVUZYTEVOQlFVRTdTVUZEV0N4MVFrRkJZU3hEUVVGQkxFTkJRVUVzUzBGQlN6dEJRVU4wUWl4RFFVRkRMRVZCU2xjc1RVRkJUU3hMUVVGT0xFMUJRVTBzVVVGSmFrSTdRVUZGUkN4TlFVRk5MRU5CUVU0c1NVRkJXU3hqUVUxWU8wRkJUa1FzVjBGQldTeGpRVUZqTzBsQlEzUkNMSEZEUVVGdFFpeERRVUZCTzBsQlEyNUNMSFZEUVVGeFFpeERRVUZCTzBsQlEzSkNMSFZEUVVGeFFpeERRVUZCTzBsQlEzSkNMSGxEUVVGMVFpeERRVUZCTzBsQlEzWkNMR2xEUVVGbExFTkJRVUU3UVVGRGJrSXNRMEZCUXl4RlFVNVhMR05CUVdNc1MwRkJaQ3hqUVVGakxGRkJUWHBDSW4wPSIsImNvbnN0IF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSByZXF1aXJlKFwibm9kZTpwYXRoXCIpOyIsImNvbnN0IF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSByZXF1aXJlKFwibm9kZTpwcm9jZXNzXCIpOyIsImltcG9ydCBwcm9jZXNzIGZyb20gJ25vZGU6cHJvY2Vzcyc7XG4vKipcbkNoZWNrIGlmIHRoZSBjb2RlIGlzIHJ1bm5pbmcgaW4gYW4gRWxlY3Ryb24gZW52aXJvbm1lbnQuXG5cbkBleGFtcGxlXG5gYGBcbmltcG9ydCB7aXNFbGVjdHJvbn0gZnJvbSAnZWxlY3Ryb24tdXRpbC9ub2RlJztcblxuY29uc29sZS5sb2coaXNFbGVjdHJvbik7XG4vLz0+IHRydWUgd2hlbiBpbiBFbGVjdHJvbiwgZmFsc2Ugd2hlbiBpbiBOb2RlLmpzXG5gYGBcbiovXG5leHBvcnQgY29uc3QgaXNFbGVjdHJvbiA9ICdlbGVjdHJvbicgaW4gcHJvY2Vzcy52ZXJzaW9ucztcbi8qKlxuQ2hlY2sgaWYgdGhlIGFwcCBpcyB1c2luZyBbQVNBUl0oaHR0cHM6Ly9lbGVjdHJvbmpzLm9yZy9kb2NzL3R1dG9yaWFsL2FwcGxpY2F0aW9uLXBhY2thZ2luZy8pLlxuXG5AZXhhbXBsZVxuYGBgXG5pbXBvcnQge2lzVXNpbmdBc2FyfSBmcm9tICdlbGVjdHJvbi11dGlsL25vZGUnO1xuXG5pZiAoaXNVc2luZ0FzYXIpIHtcbiAgICBjb25zb2xlLmxvZygnUnVubmluZyBmcm9tIGFuIEFTQVIgYXJjaGl2ZScpO1xufVxuYGBgXG4qL1xuZXhwb3J0IGNvbnN0IGlzVXNpbmdBc2FyID0gaXNFbGVjdHJvbiAmJiBwcm9jZXNzLmFyZ3Yuc29tZShhcmd1bWVudCA9PiBhcmd1bWVudD8uaW5jbHVkZXMoJ2FwcC5hc2FyJykpO1xuLyoqXG5FbGVjdHJvbiB2ZXJzaW9uLlxuXG5AZXhhbXBsZVxuYGBgXG4nMS43LjknXG5gYGBcbiovXG5leHBvcnQgY29uc3QgZWxlY3Ryb25WZXJzaW9uID0gcHJvY2Vzcy52ZXJzaW9ucy5lbGVjdHJvbiA/PyAnMC4wLjAnO1xuLyoqXG5BU0FSIGlzIGdyZWF0LCBidXQgaXQgaGFzIFtsaW1pdGF0aW9ucyB3aGVuIGl0IGNvbWVzIHRvIGV4ZWN1dGluZyBiaW5hcmllc10oaHR0cHM6Ly9lbGVjdHJvbmpzLm9yZy9kb2NzL3R1dG9yaWFsL2FwcGxpY2F0aW9uLXBhY2thZ2luZy8jZXhlY3V0aW5nLWJpbmFyaWVzLWluc2lkZS1hc2FyLWFyY2hpdmUpLlxuRm9yIGV4YW1wbGUsIFtgY2hpbGRfcHJvY2Vzcy5zcGF3bigpYCBpcyBub3QgYXV0b21hdGljYWxseSBoYW5kbGVkXShodHRwczovL2dpdGh1Yi5jb20vZWxlY3Ryb24vZWxlY3Ryb24vaXNzdWVzLzk0NTkpLlxuU28geW91IHdvdWxkIGhhdmUgdG8gdW5wYWNrIHRoZSBiaW5hcnksIGZvciBleGFtcGxlLCB3aXRoIHRoZSBbYGFzYXJVbnBhY2tgXShodHRwczovL3d3dy5lbGVjdHJvbi5idWlsZC9jb25maWd1cmF0aW9uL2NvbmZpZ3VyYXRpb24jY29uZmlndXJhdGlvbi1hc2FyVW5wYWNrKSBvcHRpb24gaW4gYGVsZWN0cm9uLWJ1aWxkZXJgLlxuVGhpcyBjcmVhdGVzIGEgcHJvYmxlbSBhcyB0aGUgcGF0aCB0byB0aGUgYmluYXJ5IGNoYW5nZXMsIGJ1dCB5b3VyIGBwYXRoLmpvaW4oX19kaXJuYW1lLCAnYmluYXJ5JylgIGlzIG5vdCBjaGFuZ2VkLlxuVG8gbWFrZSBpdCB3b3JrIHlvdSBuZWVkIHRvIGZpeCB0aGUgcGF0aC4gVGhhdCdzIHRoZSBwdXJwb3NlIG9mIHRoaXMgbWV0aG9kLlxuXG5CZWZvcmU6XG4vVXNlcnMvc2luZHJlc29yaHVzL0thcC5hcHAvQ29udGVudHMvUmVzb3VyY2VzL2FwcC5hc2FyL25vZGVfbW9kdWxlcy9mb28vYmluYXJ5XG5cbkFmdGVyOlxuL1VzZXJzL3NpbmRyZXNvcmh1cy9LYXAuYXBwL0NvbnRlbnRzL1Jlc291cmNlcy9hcHAuYXNhci51bnBhY2tlZC9ub2RlX21vZHVsZXMvZm9vL2JpbmFyeVxuXG5AcGFyYW0gcGF0aCAtIEEgcGF0aCBpbiB5b3VyIGFwcC5cbkByZXR1cm5zIFRoZSBmaXhlZCBwYXRoLlxuXG5AZXhhbXBsZVxuYGBgXG5pbXBvcnQge2ZpeFBhdGhGb3JBc2FyVW5wYWNrfSBmcm9tICdlbGVjdHJvbi11dGlsL25vZGUnO1xuXG5jb25zdCBiaW5hcnlQYXRoID0gcGF0aC5qb2luKF9fZGlybmFtZSwgJ2JpbmFyeScpO1xuY29uc3QgZml4ZWRQYXRoID0gZml4UGF0aEZvckFzYXJVbnBhY2soYmluYXJ5UGF0aCk7XG4vLz0+ICcvcGF0aC90by9hcHAuYXNhci51bnBhY2tlZC9iaW5hcnknIHdoZW4gaW4gQVNBUlxuLy89PiAnL3BhdGgvdG8vYmluYXJ5JyBvdGhlcndpc2VcbmBgYFxuKi9cbmV4cG9ydCBjb25zdCBmaXhQYXRoRm9yQXNhclVucGFjayA9IChwYXRoKSA9PiBpc1VzaW5nQXNhciA/IHBhdGgucmVwbGFjZUFsbCgnYXBwLmFzYXInLCAnYXBwLmFzYXIudW5wYWNrZWQnKSA6IHBhdGg7XG4iLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcIm5vZGU6b3NcIik7IiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJmaW5kLWphdmEtaG9tZVwiKTsiLCJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbnZhciBfX2dlbmVyYXRvciA9ICh0aGlzICYmIHRoaXMuX19nZW5lcmF0b3IpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBib2R5KSB7XG4gICAgdmFyIF8gPSB7IGxhYmVsOiAwLCBzZW50OiBmdW5jdGlvbigpIHsgaWYgKHRbMF0gJiAxKSB0aHJvdyB0WzFdOyByZXR1cm4gdFsxXTsgfSwgdHJ5czogW10sIG9wczogW10gfSwgZiwgeSwgdCwgZyA9IE9iamVjdC5jcmVhdGUoKHR5cGVvZiBJdGVyYXRvciA9PT0gXCJmdW5jdGlvblwiID8gSXRlcmF0b3IgOiBPYmplY3QpLnByb3RvdHlwZSk7XG4gICAgcmV0dXJuIGcubmV4dCA9IHZlcmIoMCksIGdbXCJ0aHJvd1wiXSA9IHZlcmIoMSksIGdbXCJyZXR1cm5cIl0gPSB2ZXJiKDIpLCB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgKGdbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gdGhpczsgfSksIGc7XG4gICAgZnVuY3Rpb24gdmVyYihuKSB7IHJldHVybiBmdW5jdGlvbiAodikgeyByZXR1cm4gc3RlcChbbiwgdl0pOyB9OyB9XG4gICAgZnVuY3Rpb24gc3RlcChvcCkge1xuICAgICAgICBpZiAoZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7XG4gICAgICAgIHdoaWxlIChnICYmIChnID0gMCwgb3BbMF0gJiYgKF8gPSAwKSksIF8pIHRyeSB7XG4gICAgICAgICAgICBpZiAoZiA9IDEsIHkgJiYgKHQgPSBvcFswXSAmIDIgPyB5W1wicmV0dXJuXCJdIDogb3BbMF0gPyB5W1widGhyb3dcIl0gfHwgKCh0ID0geVtcInJldHVyblwiXSkgJiYgdC5jYWxsKHkpLCAwKSA6IHkubmV4dCkgJiYgISh0ID0gdC5jYWxsKHksIG9wWzFdKSkuZG9uZSkgcmV0dXJuIHQ7XG4gICAgICAgICAgICBpZiAoeSA9IDAsIHQpIG9wID0gW29wWzBdICYgMiwgdC52YWx1ZV07XG4gICAgICAgICAgICBzd2l0Y2ggKG9wWzBdKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAwOiBjYXNlIDE6IHQgPSBvcDsgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSA0OiBfLmxhYmVsKys7IHJldHVybiB7IHZhbHVlOiBvcFsxXSwgZG9uZTogZmFsc2UgfTtcbiAgICAgICAgICAgICAgICBjYXNlIDU6IF8ubGFiZWwrKzsgeSA9IG9wWzFdOyBvcCA9IFswXTsgY29udGludWU7XG4gICAgICAgICAgICAgICAgY2FzZSA3OiBvcCA9IF8ub3BzLnBvcCgpOyBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIGlmICghKHQgPSBfLnRyeXMsIHQgPSB0Lmxlbmd0aCA+IDAgJiYgdFt0Lmxlbmd0aCAtIDFdKSAmJiAob3BbMF0gPT09IDYgfHwgb3BbMF0gPT09IDIpKSB7IF8gPSAwOyBjb250aW51ZTsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDMgJiYgKCF0IHx8IChvcFsxXSA+IHRbMF0gJiYgb3BbMV0gPCB0WzNdKSkpIHsgXy5sYWJlbCA9IG9wWzFdOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDYgJiYgXy5sYWJlbCA8IHRbMV0pIHsgXy5sYWJlbCA9IHRbMV07IHQgPSBvcDsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHQgJiYgXy5sYWJlbCA8IHRbMl0pIHsgXy5sYWJlbCA9IHRbMl07IF8ub3BzLnB1c2gob3ApOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodFsyXSkgXy5vcHMucG9wKCk7XG4gICAgICAgICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvcCA9IGJvZHkuY2FsbCh0aGlzQXJnLCBfKTtcbiAgICAgICAgfSBjYXRjaCAoZSkgeyBvcCA9IFs2LCBlXTsgeSA9IDA7IH0gZmluYWxseSB7IGYgPSB0ID0gMDsgfVxuICAgICAgICBpZiAob3BbMF0gJiA1KSB0aHJvdyBvcFsxXTsgcmV0dXJuIHsgdmFsdWU6IG9wWzBdID8gb3BbMV0gOiB2b2lkIDAsIGRvbmU6IHRydWUgfTtcbiAgICB9XG59O1xuaW1wb3J0IHsgam9pbiB9IGZyb20gXCJub2RlOnBhdGhcIjtcbi8vIOWwneivleWKoOS4iiAuanMg5pi+5byP5ZCO57yAXG5pbXBvcnQgeyBmaXhQYXRoRm9yQXNhclVucGFjayB9IGZyb20gXCJlbGVjdHJvbi11dGlsL25vZGVcIjtcbmltcG9ydCAqIGFzIG9zIGZyb20gXCJub2RlOm9zXCI7XG5pbXBvcnQgZmluZEphdmFIb21lIGZyb20gJ2ZpbmQtamF2YS1ob21lJztcbnZhciBKYXZhQ2FsbGVyID0gcmVxdWlyZShcImphdmEtY2FsbGVyXCIpLkphdmFDYWxsZXI7XG52YXIgcGF0aCA9IGpvaW4oX19kaXJuYW1lLCBcInByaW50ZXIuamFyXCIpO1xudmFyIGZpeFBhdGggPSBmaXhQYXRoRm9yQXNhclVucGFjayhwYXRoKTtcbnZhciBqYXZhQXJncyA9IFtcIi1EZmlsZS5lbmNvZGluZz1VVEYtOFwiXTtcbi8vIOino+WGs2xpbnV45LiL5omT5Y2w5py65p2D6ZmQ6Zeu6aKY77yMamFy5by556qX6ZyA6KaB5a6J6KOFbGliYXRrLXdyYXBwZXItamF2YVxuaWYgKG9zLnBsYXRmb3JtKCkgPT0gXCJsaW51eFwiKSB7XG4gICAgamF2YUFyZ3MucHVzaChcIi1EamF2YXguYWNjZXNzaWJpbGl0eS5hc3Npc3RpdmVfdGVjaG5vbG9naWVzPScgJ1wiKTtcbn1cbnZhciBQYXJhbWV0ZXIgPSBcIlwiLmNvbmNhdChmaXhQYXRoKTtcbi8qKlxuICog5qC45b+D77ya5bCB6KOF5omL5YqoIFByb21pc2Ug6YC76L6RXG4gKiDop6PlhrMgVFMg6aG25bGCIGF3YWl0IOmZkOWItlxuICovXG5mdW5jdGlvbiBpbml0SmF2YSgpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBpbnN0YW5jZSwgaG9tZVBhdGgsIGV4ZU5hbWU7XG4gICAgICAgIHJldHVybiBfX2dlbmVyYXRvcih0aGlzLCBmdW5jdGlvbiAoX2EpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoX2EubGFiZWwpIHtcbiAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgIGluc3RhbmNlID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFs0IC8qeWllbGQqLywgbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmRKYXZhSG9tZSh7IGFsbG93SnJlOiB0cnVlIH0sIGZ1bmN0aW9uIChlcnIsIGhvbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVyciB8fCAhaG9tZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVyciB8fCBuZXcgRXJyb3IoXCJKYXZhIEhvbWUgbm90IGZvdW5kXCIpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoaG9tZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXTtcbiAgICAgICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgICAgIGhvbWVQYXRoID0gX2Euc2VudCgpO1xuICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZSA9IG5ldyBKYXZhQ2FsbGVyKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGphcjogUGFyYW1ldGVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWFpbkNsYXNzOiBcImNvbS50ay5seWluLlByaW50ZXJzXCIsIC8vIOehruS/neWOu+aOieS6huacq+WwvumAl+WPt1xuICAgICAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbEphdmFBcmdzOiBqYXZhQXJncyxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChob21lUGF0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXhlTmFtZSA9IG9zLnBsYXRmb3JtKCkgPT09IFwid2luMzJcIiA/IFwiamF2YS5leGVcIiA6IFwiamF2YVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8g5omL5Yqo5oyH5a6a5omn6KGM6Lev5b6EXG4gICAgICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZS5qYXZhRXhlY3V0YWJsZSA9IGZpeFBhdGhGb3JBc2FyVW5wYWNrKGpvaW4oaG9tZVBhdGgsICdiaW4nLCBleGVOYW1lKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFsyIC8qcmV0dXJuKi8sIGluc3RhbmNlXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSk7XG59XG5leHBvcnQgdmFyIHJ1biA9IGZ1bmN0aW9uIChwcmludGVyKSB7IHJldHVybiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24gKCkge1xuICAgIHZhciBhcmdzLCBqYXZhLCBfYSwgc3RhdHVzLCBzdGRvdXQsIHN0ZGVycjtcbiAgICByZXR1cm4gX19nZW5lcmF0b3IodGhpcywgZnVuY3Rpb24gKF9iKSB7XG4gICAgICAgIHN3aXRjaCAoX2IubGFiZWwpIHtcbiAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICBhcmdzID0gW107XG4gICAgICAgICAgICAgICAgYXJncy5wdXNoKHByaW50ZXIuYXJnKTtcbiAgICAgICAgICAgICAgICBpZiAocHJpbnRlci5wcmludGVyTmFtZSkge1xuICAgICAgICAgICAgICAgICAgICBhcmdzLnB1c2gocHJpbnRlci5wcmludGVyTmFtZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBbNCAvKnlpZWxkKi8sIGluaXRKYXZhKCldO1xuICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgIGphdmEgPSBfYi5zZW50KCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFs0IC8qeWllbGQqLywgamF2YS5ydW4oYXJncyldO1xuICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgIF9hID0gX2Iuc2VudCgpLCBzdGF0dXMgPSBfYS5zdGF0dXMsIHN0ZG91dCA9IF9hLnN0ZG91dCwgc3RkZXJyID0gX2Euc3RkZXJyO1xuICAgICAgICAgICAgICAgIHJldHVybiBbMiAvKnJldHVybiovLCBzdGRvdXQgPyBzdGRvdXQudHJpbSgpIDogXCJ7fVwiXTtcbiAgICAgICAgfVxuICAgIH0pO1xufSk7IH07XG5leHBvcnQgdmFyIHByaW50UnVuID0gZnVuY3Rpb24gKHByaW50ZXIsIHByaW50KSB7IHJldHVybiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24gKCkge1xuICAgIHZhciBqYXZhLCBiYXNlNjRTdHIsIF9hLCBzdGF0dXMsIHN0ZG91dCwgc3RkZXJyO1xuICAgIHJldHVybiBfX2dlbmVyYXRvcih0aGlzLCBmdW5jdGlvbiAoX2IpIHtcbiAgICAgICAgc3dpdGNoIChfYi5sYWJlbCkge1xuICAgICAgICAgICAgY2FzZSAwOiByZXR1cm4gWzQgLyp5aWVsZCovLCBpbml0SmF2YSgpXTtcbiAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICBqYXZhID0gX2Iuc2VudCgpO1xuICAgICAgICAgICAgICAgIGJhc2U2NFN0ciA9IEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KHByaW50KS50cmltKCkpLnRvU3RyaW5nKCdiYXNlNjQnKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gWzQgLyp5aWVsZCovLCBqYXZhLnJ1bihbcHJpbnRlci5hcmcsIGJhc2U2NFN0cl0pXTtcbiAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICBfYSA9IF9iLnNlbnQoKSwgc3RhdHVzID0gX2Euc3RhdHVzLCBzdGRvdXQgPSBfYS5zdGRvdXQsIHN0ZGVyciA9IF9hLnN0ZGVycjtcbiAgICAgICAgICAgICAgICByZXR1cm4gWzIgLypyZXR1cm4qL107XG4gICAgICAgIH1cbiAgICB9KTtcbn0pOyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYW1GMllTMTFkR2xzTG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lMaTR2TGk0dmMzSmpMM1YwYVd4ekwycGhkbUV0ZFhScGJDNTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdRVUZCUVN4UFFVRlBMRVZCUVVNc1NVRkJTU3hGUVVGRExFMUJRVTBzVjBGQlZ5eERRVUZETzBGQlJ5OUNMR2RDUVVGblFqdEJRVU5vUWl4UFFVRlBMRVZCUVVNc2IwSkJRVzlDTEVWQlFVTXNUVUZCVFN4dlFrRkJiMElzUTBGQlF6dEJRVU40UkN4UFFVRlBMRXRCUVVzc1JVRkJSU3hOUVVGTkxGTkJRVk1zUTBGQlF6dEJRVU01UWl4UFFVRlBMRmxCUVZrc1RVRkJUU3huUWtGQlowSXNRMEZCUXp0QlFVVnVReXhKUVVGQkxGVkJRVlVzUjBGQlNTeFBRVUZQTEVOQlFVTXNZVUZCWVN4RFFVRkRMRmRCUVRGQ0xFTkJRVEpDTzBGQlJUVkRMRWxCUVVrc1NVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlF5eFRRVUZUTEVWQlFVVXNZVUZCWVN4RFFVRkRMRU5CUVVNN1FVRkRNVU1zU1VGQlNTeFBRVUZQTEVkQlFVY3NiMEpCUVc5Q0xFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdRVUZEZWtNc1NVRkJUU3hSUVVGUkxFZEJRVWNzUTBGQlF5eDFRa0ZCZFVJc1EwRkJReXhEUVVGRE8wRkJRek5ETEN0RFFVRXJRenRCUVVNdlF5eEpRVUZKTEVWQlFVVXNRMEZCUXl4UlFVRlJMRVZCUVVVc1NVRkJTU3hQUVVGUExFVkJRVVVzUTBGQlF6dEpRVU16UWl4UlFVRlJMRU5CUVVNc1NVRkJTU3hEUVVGRExHdEVRVUZyUkN4RFFVRkRMRU5CUVVFN1FVRkRja1VzUTBGQlF6dEJRVVZFTEVsQlFVMHNVMEZCVXl4SFFVRkhMRlZCUVVjc1QwRkJUeXhEUVVGRkxFTkJRVU03UVVGSEwwSTdPenRIUVVkSE8wRkJRMGdzVTBGQlpTeFJRVUZST3pzN096czdiMEpCUTJZc1VVRkJVU3hIUVVGUkxFbEJRVWtzUTBGQlF6dHZRa0ZGVml4eFFrRkJUU3hKUVVGSkxFOUJRVThzUTBGQlV5eFZRVUZETEU5QlFVOHNSVUZCUlN4TlFVRk5PelJDUVVOeVJDeFpRVUZaTEVOQlFVTXNSVUZCUXl4UlFVRlJMRVZCUVVVc1NVRkJTU3hGUVVGRExFVkJRVVVzVlVGQlF5eEhRVUZITEVWQlFVVXNTVUZCU1R0blEwRkRja01zU1VGQlNTeEhRVUZITEVsQlFVa3NRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJRenR2UTBGRFppeE5RVUZOTEVOQlFVTXNSMEZCUnl4SlFVRkpMRWxCUVVrc1MwRkJTeXhEUVVGRExIRkNRVUZ4UWl4RFFVRkRMRU5CUVVNc1EwRkJRenRuUTBGRGNFUXNRMEZCUXp0eFEwRkJUU3hEUVVGRE8yOURRVU5LTEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRuUTBGRGJFSXNRMEZCUXpzMFFrRkRUQ3hEUVVGRExFTkJRVU1zUTBGQlF6dDNRa0ZEVUN4RFFVRkRMRU5CUVVNc1JVRkJRVHM3YjBKQlVrVXNVVUZCVVN4SFFVRkhMRk5CVVdJN2IwSkJSVVlzVVVGQlVTeEhRVUZITEVsQlFVa3NWVUZCVlN4RFFVRkRPM2RDUVVOMFFpeEhRVUZITEVWQlFVVXNVMEZCVXp0M1FrRkRaQ3hUUVVGVExFVkJRVVVzYzBKQlFYTkNMRVZCUVVVc1dVRkJXVHQzUWtGREwwTXNhMEpCUVd0Q0xFVkJRVVVzVVVGQlVUdHhRa0ZETDBJc1EwRkJReXhEUVVGRE8yOUNRVU5JTEVsQlFVa3NVVUZCVVN4RlFVRkZMRU5CUVVNN2QwSkJRMHdzVDBGQlR5eEhRVUZITEVWQlFVVXNRMEZCUXl4UlFVRlJMRVZCUVVVc1MwRkJTeXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRE8zZENRVU5vUlN4WFFVRlhPM2RDUVVOWUxGRkJRVkVzUTBGQlF5eGpRVUZqTEVkQlFVY3NiMEpCUVc5Q0xFTkJRVU1zU1VGQlNTeERRVUZETEZGQlFWRXNSVUZCUlN4TFFVRkxMRVZCUVVVc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF6dHZRa0ZEYmtZc1EwRkJRenR2UWtGRFJDeHpRa0ZCVHl4UlFVRlJMRVZCUVVNN096czdRMEZEYmtJN1FVRkhSQ3hOUVVGTkxFTkJRVU1zU1VGQlRTeEhRVUZITEVkQlFVY3NWVUZCVHl4UFFVRm5RanM3T3pzN1owSkJRMmhETEVsQlFVa3NSMEZCWVN4RlFVRkZMRU5CUVVNN1owSkJRekZDTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzJkQ1FVTjJRaXhKUVVGSkxFOUJRVThzUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZCUXp0dlFrRkRkRUlzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1YwRkJWeXhEUVVGRExFTkJRVU03WjBKQlEyNURMRU5CUVVNN1owSkJRMWtzY1VKQlFVMHNVVUZCVVN4RlFVRkZMRVZCUVVFN08yZENRVUYyUWl4SlFVRkpMRWRCUVVjc1UwRkJaMEk3WjBKQlEwa3NjVUpCUVUwc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZCUVRzN1owSkJRUzlETEV0QlFUSkNMRk5CUVc5Q0xFVkJRVGxETEUxQlFVMHNXVUZCUVN4RlFVRkZMRTFCUVUwc1dVRkJRU3hGUVVGRkxFMUJRVTBzV1VGQlFUdG5Ra0ZETjBJc2MwSkJRVThzVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NSVUZCUXpzN08wdEJRM2hETEVOQlFVTTdRVUZGUml4TlFVRk5MRU5CUVVNc1NVRkJUU3hSUVVGUkxFZEJRVWNzVlVGRGNFSXNUMEZCWjBJc1JVRkJSU3hMUVVGdFFqczdPenR2UWtGRmVFSXNjVUpCUVUwc1VVRkJVU3hGUVVGRkxFVkJRVUU3TzJkQ1FVRjJRaXhKUVVGSkxFZEJRVWNzVTBGQlowSTdaMEpCUTNaQ0xGTkJRVk1zUjBGQlJ5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNTVUZCU1N4RlFVRkZMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTTdaMEpCUXpsRExIRkNRVUZOTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhQUVVGUExFTkJRVU1zUjBGQlJ5eEZRVUZGTEZOQlFWTXNRMEZCUXl4RFFVRkRMRVZCUVVFN08yZENRVUZ1UlN4TFFVRXlRaXhUUVVGM1F5eEZRVUZzUlN4TlFVRk5MRmxCUVVFc1JVRkJSU3hOUVVGTkxGbEJRVUVzUlVGQlJTeE5RVUZOTEZsQlFVRTdPenM3UzBGRGFFTXNRMEZCUXlKOSIsInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xudmFyIF9fZ2VuZXJhdG9yID0gKHRoaXMgJiYgdGhpcy5fX2dlbmVyYXRvcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIGJvZHkpIHtcbiAgICB2YXIgXyA9IHsgbGFiZWw6IDAsIHNlbnQ6IGZ1bmN0aW9uKCkgeyBpZiAodFswXSAmIDEpIHRocm93IHRbMV07IHJldHVybiB0WzFdOyB9LCB0cnlzOiBbXSwgb3BzOiBbXSB9LCBmLCB5LCB0LCBnID0gT2JqZWN0LmNyZWF0ZSgodHlwZW9mIEl0ZXJhdG9yID09PSBcImZ1bmN0aW9uXCIgPyBJdGVyYXRvciA6IE9iamVjdCkucHJvdG90eXBlKTtcbiAgICByZXR1cm4gZy5uZXh0ID0gdmVyYigwKSwgZ1tcInRocm93XCJdID0gdmVyYigxKSwgZ1tcInJldHVyblwiXSA9IHZlcmIoMiksIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiAoZ1tTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzOyB9KSwgZztcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgcmV0dXJuIGZ1bmN0aW9uICh2KSB7IHJldHVybiBzdGVwKFtuLCB2XSk7IH07IH1cbiAgICBmdW5jdGlvbiBzdGVwKG9wKSB7XG4gICAgICAgIGlmIChmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcbiAgICAgICAgd2hpbGUgKGcgJiYgKGcgPSAwLCBvcFswXSAmJiAoXyA9IDApKSwgXykgdHJ5IHtcbiAgICAgICAgICAgIGlmIChmID0gMSwgeSAmJiAodCA9IG9wWzBdICYgMiA/IHlbXCJyZXR1cm5cIl0gOiBvcFswXSA/IHlbXCJ0aHJvd1wiXSB8fCAoKHQgPSB5W1wicmV0dXJuXCJdKSAmJiB0LmNhbGwoeSksIDApIDogeS5uZXh0KSAmJiAhKHQgPSB0LmNhbGwoeSwgb3BbMV0pKS5kb25lKSByZXR1cm4gdDtcbiAgICAgICAgICAgIGlmICh5ID0gMCwgdCkgb3AgPSBbb3BbMF0gJiAyLCB0LnZhbHVlXTtcbiAgICAgICAgICAgIHN3aXRjaCAob3BbMF0pIHtcbiAgICAgICAgICAgICAgICBjYXNlIDA6IGNhc2UgMTogdCA9IG9wOyBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDQ6IF8ubGFiZWwrKzsgcmV0dXJuIHsgdmFsdWU6IG9wWzFdLCBkb25lOiBmYWxzZSB9O1xuICAgICAgICAgICAgICAgIGNhc2UgNTogXy5sYWJlbCsrOyB5ID0gb3BbMV07IG9wID0gWzBdOyBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjYXNlIDc6IG9wID0gXy5vcHMucG9wKCk7IF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEodCA9IF8udHJ5cywgdCA9IHQubGVuZ3RoID4gMCAmJiB0W3QubGVuZ3RoIC0gMV0pICYmIChvcFswXSA9PT0gNiB8fCBvcFswXSA9PT0gMikpIHsgXyA9IDA7IGNvbnRpbnVlOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gMyAmJiAoIXQgfHwgKG9wWzFdID4gdFswXSAmJiBvcFsxXSA8IHRbM10pKSkgeyBfLmxhYmVsID0gb3BbMV07IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gNiAmJiBfLmxhYmVsIDwgdFsxXSkgeyBfLmxhYmVsID0gdFsxXTsgdCA9IG9wOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodCAmJiBfLmxhYmVsIDwgdFsyXSkgeyBfLmxhYmVsID0gdFsyXTsgXy5vcHMucHVzaChvcCk7IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh0WzJdKSBfLm9wcy5wb3AoKTtcbiAgICAgICAgICAgICAgICAgICAgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9wID0gYm9keS5jYWxsKHRoaXNBcmcsIF8pO1xuICAgICAgICB9IGNhdGNoIChlKSB7IG9wID0gWzYsIGVdOyB5ID0gMDsgfSBmaW5hbGx5IHsgZiA9IHQgPSAwOyB9XG4gICAgICAgIGlmIChvcFswXSAmIDUpIHRocm93IG9wWzFdOyByZXR1cm4geyB2YWx1ZTogb3BbMF0gPyBvcFsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9O1xuICAgIH1cbn07XG4vLyDnm7TmjqXmiZPljbBcbmltcG9ydCBmcyBmcm9tIFwiZnNcIjtcbmltcG9ydCB7IFByaW50ZXJBY3Rpb25zIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgeyBwcmludFJ1biB9IGZyb20gXCIuLi91dGlscy9qYXZhLXV0aWxcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHByaW50KHBpbnRlcikge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHBkZjtcbiAgICAgICAgcmV0dXJuIF9fZ2VuZXJhdG9yKHRoaXMsIGZ1bmN0aW9uIChfYSkge1xuICAgICAgICAgICAgc3dpdGNoIChfYS5sYWJlbCkge1xuICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgcGRmID0gcGludGVyLnBkZjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFwZGYpXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBcIk5vIFBERiBzcGVjaWZpZWRcIjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFmcy5leGlzdHNTeW5jKHBkZikpXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBcIk5vIHN1Y2ggZmlsZVwiO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzQgLyp5aWVsZCovLCBwcmludFJ1bih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnOiBQcmludGVyQWN0aW9ucy5QUklOVCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIHBpbnRlcildO1xuICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgX2Euc2VudCgpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzIgLypyZXR1cm4qL107XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0pO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pY0hKcGJuUXVhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lJdUxpOHVMaTl6Y21NdmNISnBiblF2Y0hKcGJuUXVkSE1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJanM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPMEZCUVVFc1QwRkJUenRCUVVOUUxFOUJRVThzUlVGQlJTeE5RVUZOTEVsQlFVa3NRMEZCUXp0QlFVTndRaXhQUVVGUExFVkJRVU1zWTBGQll5eEZRVUZsTEUxQlFVMHNWVUZCVlN4RFFVRkRPMEZCUTNSRUxFOUJRVThzUlVGQlF5eFJRVUZSTEVWQlFVTXNUVUZCVFN4dlFrRkJiMElzUTBGQlF6dEJRVVUxUXl4TlFVRk5MRU5CUVVNc1QwRkJUeXhWUVVGblFpeExRVUZMTEVOQlF5OUNMRTFCUVc5Q096czdPenM3YjBKQlJXUXNSMEZCUnl4SFFVRkhMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU03YjBKQlEzWkNMRWxCUVVrc1EwRkJReXhIUVVGSE8zZENRVUZGTEUxQlFVMHNhMEpCUVd0Q0xFTkJRVU03YjBKQlEyNURMRWxCUVVrc1EwRkJReXhGUVVGRkxFTkJRVU1zVlVGQlZTeERRVUZETEVkQlFVY3NRMEZCUXp0M1FrRkJSU3hOUVVGTkxHTkJRV01zUTBGQlF6dHZRa0ZET1VNc2NVSkJRVTBzVVVGQlVTeERRVUZET3pSQ1FVTllMRWRCUVVjc1JVRkJSU3hqUVVGakxFTkJRVU1zUzBGQlN6dDVRa0ZETlVJc1JVRkJSU3hOUVVGTkxFTkJRVU1zUlVGQlFUczdiMEpCUmxZc1UwRkZWU3hEUVVGRE96czdPenREUVVOa0luMD0iLCJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbnZhciBfX2dlbmVyYXRvciA9ICh0aGlzICYmIHRoaXMuX19nZW5lcmF0b3IpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBib2R5KSB7XG4gICAgdmFyIF8gPSB7IGxhYmVsOiAwLCBzZW50OiBmdW5jdGlvbigpIHsgaWYgKHRbMF0gJiAxKSB0aHJvdyB0WzFdOyByZXR1cm4gdFsxXTsgfSwgdHJ5czogW10sIG9wczogW10gfSwgZiwgeSwgdCwgZyA9IE9iamVjdC5jcmVhdGUoKHR5cGVvZiBJdGVyYXRvciA9PT0gXCJmdW5jdGlvblwiID8gSXRlcmF0b3IgOiBPYmplY3QpLnByb3RvdHlwZSk7XG4gICAgcmV0dXJuIGcubmV4dCA9IHZlcmIoMCksIGdbXCJ0aHJvd1wiXSA9IHZlcmIoMSksIGdbXCJyZXR1cm5cIl0gPSB2ZXJiKDIpLCB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgKGdbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gdGhpczsgfSksIGc7XG4gICAgZnVuY3Rpb24gdmVyYihuKSB7IHJldHVybiBmdW5jdGlvbiAodikgeyByZXR1cm4gc3RlcChbbiwgdl0pOyB9OyB9XG4gICAgZnVuY3Rpb24gc3RlcChvcCkge1xuICAgICAgICBpZiAoZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7XG4gICAgICAgIHdoaWxlIChnICYmIChnID0gMCwgb3BbMF0gJiYgKF8gPSAwKSksIF8pIHRyeSB7XG4gICAgICAgICAgICBpZiAoZiA9IDEsIHkgJiYgKHQgPSBvcFswXSAmIDIgPyB5W1wicmV0dXJuXCJdIDogb3BbMF0gPyB5W1widGhyb3dcIl0gfHwgKCh0ID0geVtcInJldHVyblwiXSkgJiYgdC5jYWxsKHkpLCAwKSA6IHkubmV4dCkgJiYgISh0ID0gdC5jYWxsKHksIG9wWzFdKSkuZG9uZSkgcmV0dXJuIHQ7XG4gICAgICAgICAgICBpZiAoeSA9IDAsIHQpIG9wID0gW29wWzBdICYgMiwgdC52YWx1ZV07XG4gICAgICAgICAgICBzd2l0Y2ggKG9wWzBdKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAwOiBjYXNlIDE6IHQgPSBvcDsgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSA0OiBfLmxhYmVsKys7IHJldHVybiB7IHZhbHVlOiBvcFsxXSwgZG9uZTogZmFsc2UgfTtcbiAgICAgICAgICAgICAgICBjYXNlIDU6IF8ubGFiZWwrKzsgeSA9IG9wWzFdOyBvcCA9IFswXTsgY29udGludWU7XG4gICAgICAgICAgICAgICAgY2FzZSA3OiBvcCA9IF8ub3BzLnBvcCgpOyBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIGlmICghKHQgPSBfLnRyeXMsIHQgPSB0Lmxlbmd0aCA+IDAgJiYgdFt0Lmxlbmd0aCAtIDFdKSAmJiAob3BbMF0gPT09IDYgfHwgb3BbMF0gPT09IDIpKSB7IF8gPSAwOyBjb250aW51ZTsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDMgJiYgKCF0IHx8IChvcFsxXSA+IHRbMF0gJiYgb3BbMV0gPCB0WzNdKSkpIHsgXy5sYWJlbCA9IG9wWzFdOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDYgJiYgXy5sYWJlbCA8IHRbMV0pIHsgXy5sYWJlbCA9IHRbMV07IHQgPSBvcDsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHQgJiYgXy5sYWJlbCA8IHRbMl0pIHsgXy5sYWJlbCA9IHRbMl07IF8ub3BzLnB1c2gob3ApOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodFsyXSkgXy5vcHMucG9wKCk7XG4gICAgICAgICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvcCA9IGJvZHkuY2FsbCh0aGlzQXJnLCBfKTtcbiAgICAgICAgfSBjYXRjaCAoZSkgeyBvcCA9IFs2LCBlXTsgeSA9IDA7IH0gZmluYWxseSB7IGYgPSB0ID0gMDsgfVxuICAgICAgICBpZiAob3BbMF0gJiA1KSB0aHJvdyBvcFsxXTsgcmV0dXJuIHsgdmFsdWU6IG9wWzBdID8gb3BbMV0gOiB2b2lkIDAsIGRvbmU6IHRydWUgfTtcbiAgICB9XG59O1xuaW1wb3J0IHsgUHJpbnRlckFjdGlvbnMgfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7IHJ1biB9IGZyb20gXCIuLi91dGlscy9qYXZhLXV0aWxcIjtcbmZ1bmN0aW9uIGdldFByaW50ZXJzKCkge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHJlc3VsdCwgZXJyb3JfMTtcbiAgICAgICAgcmV0dXJuIF9fZ2VuZXJhdG9yKHRoaXMsIGZ1bmN0aW9uIChfYSkge1xuICAgICAgICAgICAgc3dpdGNoIChfYS5sYWJlbCkge1xuICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgX2EudHJ5cy5wdXNoKFswLCAyLCAsIDNdKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFs0IC8qeWllbGQqLywgcnVuKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmc6IFByaW50ZXJBY3Rpb25zLlBSSU5URVJTLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSldO1xuICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gX2Euc2VudCgpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzIgLypyZXR1cm4qLywgSlNPTi5wYXJzZShyZXN1bHQpXTtcbiAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgIGVycm9yXzEgPSBfYS5zZW50KCk7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycm9yXzE7XG4gICAgICAgICAgICAgICAgY2FzZSAzOiByZXR1cm4gWzIgLypyZXR1cm4qL107XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0pO1xufVxuZXhwb3J0IGRlZmF1bHQgZ2V0UHJpbnRlcnM7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2laMlYwTFhCeWFXNTBaWEp6TG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lMaTR2TGk0dmMzSmpMMmRsZEMxd2NtbHVkR1Z5Y3k5blpYUXRjSEpwYm5SbGNuTXVkSE1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJanM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPMEZCUVVFc1QwRkJUeXhGUVVGVkxHTkJRV01zUlVGQlF5eE5RVUZOTEZWQlFWVXNRMEZCUXp0QlFVTnFSQ3hQUVVGUExFVkJRVU1zUjBGQlJ5eEZRVUZETEUxQlFVMHNiMEpCUVc5Q0xFTkJRVU03UVVGRmRrTXNVMEZCWlN4WFFVRlhPenM3T3pzN08yOUNRVVZNTEhGQ1FVRk5MRWRCUVVjc1EwRkJRenMwUWtGRGJrSXNSMEZCUnl4RlFVRkZMR05CUVdNc1EwRkJReXhSUVVGUk8zbENRVU12UWl4RFFVRkRMRVZCUVVFN08yOUNRVVpGTEUxQlFVMHNSMEZCUnl4VFFVVllPMjlDUVVOR0xITkNRVUZQTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVGRExFVkJRVU03T3p0dlFrRkZNVUlzVFVGQlRTeFBRVUZMTEVOQlFVTTdPenM3TzBOQlJXNUNPMEZCUlVRc1pVRkJaU3hYUVVGWExFTkJRVU1pZlE9PSIsInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xudmFyIF9fZ2VuZXJhdG9yID0gKHRoaXMgJiYgdGhpcy5fX2dlbmVyYXRvcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIGJvZHkpIHtcbiAgICB2YXIgXyA9IHsgbGFiZWw6IDAsIHNlbnQ6IGZ1bmN0aW9uKCkgeyBpZiAodFswXSAmIDEpIHRocm93IHRbMV07IHJldHVybiB0WzFdOyB9LCB0cnlzOiBbXSwgb3BzOiBbXSB9LCBmLCB5LCB0LCBnID0gT2JqZWN0LmNyZWF0ZSgodHlwZW9mIEl0ZXJhdG9yID09PSBcImZ1bmN0aW9uXCIgPyBJdGVyYXRvciA6IE9iamVjdCkucHJvdG90eXBlKTtcbiAgICByZXR1cm4gZy5uZXh0ID0gdmVyYigwKSwgZ1tcInRocm93XCJdID0gdmVyYigxKSwgZ1tcInJldHVyblwiXSA9IHZlcmIoMiksIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiAoZ1tTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzOyB9KSwgZztcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgcmV0dXJuIGZ1bmN0aW9uICh2KSB7IHJldHVybiBzdGVwKFtuLCB2XSk7IH07IH1cbiAgICBmdW5jdGlvbiBzdGVwKG9wKSB7XG4gICAgICAgIGlmIChmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcbiAgICAgICAgd2hpbGUgKGcgJiYgKGcgPSAwLCBvcFswXSAmJiAoXyA9IDApKSwgXykgdHJ5IHtcbiAgICAgICAgICAgIGlmIChmID0gMSwgeSAmJiAodCA9IG9wWzBdICYgMiA/IHlbXCJyZXR1cm5cIl0gOiBvcFswXSA/IHlbXCJ0aHJvd1wiXSB8fCAoKHQgPSB5W1wicmV0dXJuXCJdKSAmJiB0LmNhbGwoeSksIDApIDogeS5uZXh0KSAmJiAhKHQgPSB0LmNhbGwoeSwgb3BbMV0pKS5kb25lKSByZXR1cm4gdDtcbiAgICAgICAgICAgIGlmICh5ID0gMCwgdCkgb3AgPSBbb3BbMF0gJiAyLCB0LnZhbHVlXTtcbiAgICAgICAgICAgIHN3aXRjaCAob3BbMF0pIHtcbiAgICAgICAgICAgICAgICBjYXNlIDA6IGNhc2UgMTogdCA9IG9wOyBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDQ6IF8ubGFiZWwrKzsgcmV0dXJuIHsgdmFsdWU6IG9wWzFdLCBkb25lOiBmYWxzZSB9O1xuICAgICAgICAgICAgICAgIGNhc2UgNTogXy5sYWJlbCsrOyB5ID0gb3BbMV07IG9wID0gWzBdOyBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjYXNlIDc6IG9wID0gXy5vcHMucG9wKCk7IF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEodCA9IF8udHJ5cywgdCA9IHQubGVuZ3RoID4gMCAmJiB0W3QubGVuZ3RoIC0gMV0pICYmIChvcFswXSA9PT0gNiB8fCBvcFswXSA9PT0gMikpIHsgXyA9IDA7IGNvbnRpbnVlOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gMyAmJiAoIXQgfHwgKG9wWzFdID4gdFswXSAmJiBvcFsxXSA8IHRbM10pKSkgeyBfLmxhYmVsID0gb3BbMV07IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gNiAmJiBfLmxhYmVsIDwgdFsxXSkgeyBfLmxhYmVsID0gdFsxXTsgdCA9IG9wOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodCAmJiBfLmxhYmVsIDwgdFsyXSkgeyBfLmxhYmVsID0gdFsyXTsgXy5vcHMucHVzaChvcCk7IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh0WzJdKSBfLm9wcy5wb3AoKTtcbiAgICAgICAgICAgICAgICAgICAgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9wID0gYm9keS5jYWxsKHRoaXNBcmcsIF8pO1xuICAgICAgICB9IGNhdGNoIChlKSB7IG9wID0gWzYsIGVdOyB5ID0gMDsgfSBmaW5hbGx5IHsgZiA9IHQgPSAwOyB9XG4gICAgICAgIGlmIChvcFswXSAmIDUpIHRocm93IG9wWzFdOyByZXR1cm4geyB2YWx1ZTogb3BbMF0gPyBvcFsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9O1xuICAgIH1cbn07XG5pbXBvcnQgeyBQcmludGVyQWN0aW9ucyB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgcnVuIH0gZnJvbSBcIi4uL3V0aWxzL2phdmEtdXRpbFwiO1xuZnVuY3Rpb24gZ2V0RGVmYXVsdFByaW50ZXIoKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgcmVzdWx0LCBlcnJvcl8xO1xuICAgICAgICByZXR1cm4gX19nZW5lcmF0b3IodGhpcywgZnVuY3Rpb24gKF9hKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKF9hLmxhYmVsKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgICAgICBfYS50cnlzLnB1c2goWzAsIDIsICwgM10pO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzQgLyp5aWVsZCovLCBydW4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZzogUHJpbnRlckFjdGlvbnMuREVGQVVMVCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXTtcbiAgICAgICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IF9hLnNlbnQoKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFsyIC8qcmV0dXJuKi8sIEpTT04ucGFyc2UocmVzdWx0KV07XG4gICAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgICAgICBlcnJvcl8xID0gX2Euc2VudCgpO1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcl8xO1xuICAgICAgICAgICAgICAgIGNhc2UgMzogcmV0dXJuIFsyIC8qcmV0dXJuKi9dO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KTtcbn1cbmV4cG9ydCBkZWZhdWx0IGdldERlZmF1bHRQcmludGVyO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pWjJWMExXUmxabUYxYkhRdGNISnBiblJsY2k1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJaTR1THk0dUwzTnlZeTluWlhRdFpHVm1ZWFZzZEMxd2NtbHVkR1Z5TDJkbGRDMWtaV1poZFd4MExYQnlhVzUwWlhJdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklqczdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN08wRkJRVUVzVDBGQlR5eEZRVUZWTEdOQlFXTXNSVUZCUXl4TlFVRk5MRlZCUVZVc1EwRkJRenRCUVVOcVJDeFBRVUZQTEVWQlFVTXNSMEZCUnl4RlFVRkRMRTFCUVUwc2IwSkJRVzlDTEVOQlFVTTdRVUZGZGtNc1UwRkJaU3hwUWtGQmFVSTdPenM3T3pzN2IwSkJSVmdzY1VKQlFVMHNSMEZCUnl4RFFVRkRPelJDUVVOdVFpeEhRVUZITEVWQlFVVXNZMEZCWXl4RFFVRkRMRTlCUVU4N2VVSkJRemxDTEVOQlFVTXNSVUZCUVRzN2IwSkJSa1VzVFVGQlRTeEhRVUZITEZOQlJWZzdiMEpCUTBZc2MwSkJRVThzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4TlFVRk5MRU5CUVVNc1JVRkJRenM3TzI5Q1FVVXhRaXhOUVVGTkxFOUJRVXNzUTBGQlF6czdPenM3UTBGRmJrSTdRVUZGUkN4bFFVRmxMR2xDUVVGcFFpeERRVUZESW4wPSIsInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xudmFyIF9fZ2VuZXJhdG9yID0gKHRoaXMgJiYgdGhpcy5fX2dlbmVyYXRvcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIGJvZHkpIHtcbiAgICB2YXIgXyA9IHsgbGFiZWw6IDAsIHNlbnQ6IGZ1bmN0aW9uKCkgeyBpZiAodFswXSAmIDEpIHRocm93IHRbMV07IHJldHVybiB0WzFdOyB9LCB0cnlzOiBbXSwgb3BzOiBbXSB9LCBmLCB5LCB0LCBnID0gT2JqZWN0LmNyZWF0ZSgodHlwZW9mIEl0ZXJhdG9yID09PSBcImZ1bmN0aW9uXCIgPyBJdGVyYXRvciA6IE9iamVjdCkucHJvdG90eXBlKTtcbiAgICByZXR1cm4gZy5uZXh0ID0gdmVyYigwKSwgZ1tcInRocm93XCJdID0gdmVyYigxKSwgZ1tcInJldHVyblwiXSA9IHZlcmIoMiksIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiAoZ1tTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzOyB9KSwgZztcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgcmV0dXJuIGZ1bmN0aW9uICh2KSB7IHJldHVybiBzdGVwKFtuLCB2XSk7IH07IH1cbiAgICBmdW5jdGlvbiBzdGVwKG9wKSB7XG4gICAgICAgIGlmIChmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcbiAgICAgICAgd2hpbGUgKGcgJiYgKGcgPSAwLCBvcFswXSAmJiAoXyA9IDApKSwgXykgdHJ5IHtcbiAgICAgICAgICAgIGlmIChmID0gMSwgeSAmJiAodCA9IG9wWzBdICYgMiA/IHlbXCJyZXR1cm5cIl0gOiBvcFswXSA/IHlbXCJ0aHJvd1wiXSB8fCAoKHQgPSB5W1wicmV0dXJuXCJdKSAmJiB0LmNhbGwoeSksIDApIDogeS5uZXh0KSAmJiAhKHQgPSB0LmNhbGwoeSwgb3BbMV0pKS5kb25lKSByZXR1cm4gdDtcbiAgICAgICAgICAgIGlmICh5ID0gMCwgdCkgb3AgPSBbb3BbMF0gJiAyLCB0LnZhbHVlXTtcbiAgICAgICAgICAgIHN3aXRjaCAob3BbMF0pIHtcbiAgICAgICAgICAgICAgICBjYXNlIDA6IGNhc2UgMTogdCA9IG9wOyBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDQ6IF8ubGFiZWwrKzsgcmV0dXJuIHsgdmFsdWU6IG9wWzFdLCBkb25lOiBmYWxzZSB9O1xuICAgICAgICAgICAgICAgIGNhc2UgNTogXy5sYWJlbCsrOyB5ID0gb3BbMV07IG9wID0gWzBdOyBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjYXNlIDc6IG9wID0gXy5vcHMucG9wKCk7IF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEodCA9IF8udHJ5cywgdCA9IHQubGVuZ3RoID4gMCAmJiB0W3QubGVuZ3RoIC0gMV0pICYmIChvcFswXSA9PT0gNiB8fCBvcFswXSA9PT0gMikpIHsgXyA9IDA7IGNvbnRpbnVlOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gMyAmJiAoIXQgfHwgKG9wWzFdID4gdFswXSAmJiBvcFsxXSA8IHRbM10pKSkgeyBfLmxhYmVsID0gb3BbMV07IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gNiAmJiBfLmxhYmVsIDwgdFsxXSkgeyBfLmxhYmVsID0gdFsxXTsgdCA9IG9wOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodCAmJiBfLmxhYmVsIDwgdFsyXSkgeyBfLmxhYmVsID0gdFsyXTsgXy5vcHMucHVzaChvcCk7IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh0WzJdKSBfLm9wcy5wb3AoKTtcbiAgICAgICAgICAgICAgICAgICAgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9wID0gYm9keS5jYWxsKHRoaXNBcmcsIF8pO1xuICAgICAgICB9IGNhdGNoIChlKSB7IG9wID0gWzYsIGVdOyB5ID0gMDsgfSBmaW5hbGx5IHsgZiA9IHQgPSAwOyB9XG4gICAgICAgIGlmIChvcFswXSAmIDUpIHRocm93IG9wWzFdOyByZXR1cm4geyB2YWx1ZTogb3BbMF0gPyBvcFsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9O1xuICAgIH1cbn07XG52YXIgX19zcHJlYWRBcnJheSA9ICh0aGlzICYmIHRoaXMuX19zcHJlYWRBcnJheSkgfHwgZnVuY3Rpb24gKHRvLCBmcm9tLCBwYWNrKSB7XG4gICAgaWYgKHBhY2sgfHwgYXJndW1lbnRzLmxlbmd0aCA9PT0gMikgZm9yICh2YXIgaSA9IDAsIGwgPSBmcm9tLmxlbmd0aCwgYXI7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgaWYgKGFyIHx8ICEoaSBpbiBmcm9tKSkge1xuICAgICAgICAgICAgaWYgKCFhcikgYXIgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChmcm9tLCAwLCBpKTtcbiAgICAgICAgICAgIGFyW2ldID0gZnJvbVtpXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdG8uY29uY2F0KGFyIHx8IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGZyb20pKTtcbn07XG5pbXBvcnQgeyBQcmludGVyQWN0aW9ucyB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgcnVuIH0gZnJvbSBcIi4uL3V0aWxzL2phdmEtdXRpbFwiO1xuLyoqXG4gKiDojrflj5bmjIflrprmiZPljbDmnLrmiYDmlK/mjIHnmoTnurjlvKDlpKflsI8s5aaC5p6c5oOz6I635Y+W6buY6K6k5omT5Y2w5py657q45byg5aSn5bCPIG9wdGlvbnMucHJpbnRlciDor7fkvb/nlKjnqbrlrZfnrKZcbiAqIEdldCB0aGUgcGFwZXIgc2l6ZSBzdXBwb3J0ZWQgYnkgdGhlIHNwZWNpZmllZCBwcmludGVyLCBpZiB5b3Ugd2FudCB0byBnZXQgdGhlIGRlZmF1bHQgcHJpbnRlciBwYXBlciBzaXplIG9wdGlvbnMucHJpbnRlciBQbGVhc2UgdXNlIGEgYmxhbmsgY2hhcmFjdGVyXG4gKi9cbmV4cG9ydCB2YXIgZ2V0UGFwZXJTaXplSW5mbyA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgYXJnc18xID0gW107XG4gICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHtcbiAgICAgICAgYXJnc18xW19pXSA9IGFyZ3VtZW50c1tfaV07XG4gICAgfVxuICAgIHJldHVybiBfX2F3YWl0ZXIodm9pZCAwLCBfX3NwcmVhZEFycmF5KFtdLCBhcmdzXzEsIHRydWUpLCB2b2lkIDAsIGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIHZhciByZXN1bHQsIGVycm9yXzE7XG4gICAgICAgIGlmIChvcHRpb25zID09PSB2b2lkIDApIHsgb3B0aW9ucyA9IHsgcHJpbnRlcjogXCJcIiB9OyB9XG4gICAgICAgIHJldHVybiBfX2dlbmVyYXRvcih0aGlzLCBmdW5jdGlvbiAoX2EpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoX2EubGFiZWwpIHtcbiAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgIF9hLnRyeXMucHVzaChbMCwgMiwgLCAzXSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbNCAvKnlpZWxkKi8sIHJ1bih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnOiBQcmludGVyQWN0aW9ucy5TSVpFSU5GTyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGVyTmFtZTogb3B0aW9ucy5wcmludGVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSldO1xuICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gX2Euc2VudCgpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzIgLypyZXR1cm4qLywgSlNPTi5wYXJzZShyZXN1bHQpXTtcbiAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgIGVycm9yXzEgPSBfYS5zZW50KCk7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycm9yXzE7XG4gICAgICAgICAgICAgICAgY2FzZSAzOiByZXR1cm4gWzIgLypyZXR1cm4qL107XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0pO1xufTtcbi8qKlxuICog6I635Y+W5omA5pyJ5omT5Y2w5py65omA5pSv5oyB55qE57q45byg5aSn5bCPXG4gKiBHZXQgdGhlIHBhcGVyIHNpemUgc3VwcG9ydGVkIGJ5IGFsbCBwcmludGVyc1xuICogQHJldHVybnMgYWxsIHBhcGVyU2l6ZVxuICovXG5leHBvcnQgdmFyIGdldFBhcGVyU2l6ZUluZm9BbGwgPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGFyZ3NfMSA9IFtdO1xuICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgIGFyZ3NfMVtfaV0gPSBhcmd1bWVudHNbX2ldO1xuICAgIH1cbiAgICByZXR1cm4gX19hd2FpdGVyKHZvaWQgMCwgX19zcHJlYWRBcnJheShbXSwgYXJnc18xLCB0cnVlKSwgdm9pZCAwLCBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICB2YXIgcmVzdWx0LCBlcnJvcl8yO1xuICAgICAgICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7IG9wdGlvbnMgPSB7fTsgfVxuICAgICAgICByZXR1cm4gX19nZW5lcmF0b3IodGhpcywgZnVuY3Rpb24gKF9hKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKF9hLmxhYmVsKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgICAgICBfYS50cnlzLnB1c2goWzAsIDIsICwgM10pO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzQgLyp5aWVsZCovLCBydW4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZzogUHJpbnRlckFjdGlvbnMuU0laRUlORk9TLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSldO1xuICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gX2Euc2VudCgpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzIgLypyZXR1cm4qLywgSlNPTi5wYXJzZShyZXN1bHQpXTtcbiAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgIGVycm9yXzIgPSBfYS5zZW50KCk7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycm9yXzI7XG4gICAgICAgICAgICAgICAgY2FzZSAzOiByZXR1cm4gWzIgLypyZXR1cm4qL107XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0pO1xufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVoyVjBMWEJoY0dWeUxYTnBlbVV0YVc1bWJ5NXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMM055WXk5blpYUXRjR0Z3WlhJdGMybDZaUzluWlhRdGNHRndaWEl0YzJsNlpTMXBibVp2TG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lJN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3p0QlFVRkJMRTlCUVU4c1JVRkJNa01zWTBGQll5eEZRVUZETEUxQlFVMHNWVUZCVlN4RFFVRkRPMEZCUTJ4R0xFOUJRVThzUlVGQlF5eEhRVUZITEVWQlFVTXNUVUZCVFN4dlFrRkJiMElzUTBGQlF6dEJRVWQyUXpzN08wZEJSMGM3UVVGRFNDeE5RVUZOTEVOQlFVTXNTVUZCVFN4blFrRkJaMElzUjBGQlJ6czdPenM3WjBaQlF6VkNMRTlCUVRaRE96dFJRVUUzUXl4M1FrRkJRU3hGUVVGQkxGbEJRV2xETEU5QlFVOHNSVUZCUlN4RlFVRkZMRVZCUVVNN096czdPMjlDUVVjMVFpeHhRa0ZCVFN4SFFVRkhMRU5CUVVNN05FSkJRMjVDTEVkQlFVY3NSVUZCUlN4alFVRmpMRU5CUVVNc1VVRkJVVHMwUWtGRE5VSXNWMEZCVnl4RlFVRkZMRTlCUVU4c1EwRkJReXhQUVVGUE8zbENRVU12UWl4RFFVRkRMRVZCUVVFN08yOUNRVWhGTEUxQlFVMHNSMEZCUnl4VFFVZFlPMjlDUVVOR0xITkNRVUZQTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVGRExFVkJRVU03T3p0dlFrRkZNVUlzVFVGQlRTeFBRVUZMTEVOQlFVTTdPenM3TzBOQlJXNUNMRU5CUVVNN1FVRkZSanM3T3p0SFFVbEhPMEZCUTBnc1RVRkJUU3hEUVVGRExFbEJRVTBzYlVKQlFXMUNMRWRCUVVjN096czdPMmRHUVVNdlFpeFBRVUZ0UkRzN1VVRkJia1FzZDBKQlFVRXNSVUZCUVN4WlFVRnRSRHM3T3pzN2IwSkJSMnhETEhGQ1FVRk5MRWRCUVVjc1EwRkJRenMwUWtGRGJrSXNSMEZCUnl4RlFVRkZMR05CUVdNc1EwRkJReXhUUVVGVE8zbENRVU5vUXl4RFFVRkRMRVZCUVVFN08yOUNRVVpGTEUxQlFVMHNSMEZCUnl4VFFVVllPMjlDUVVOR0xITkNRVUZQTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVGRExFVkJRVU03T3p0dlFrRkZNVUlzVFVGQlRTeFBRVUZMTEVOQlFVTTdPenM3TzBOQlJXNUNMRU5CUVVNaWZRPT0iXSwibmFtZXMiOlsicm9vdCIsImZhY3RvcnkiLCJleHBvcnRzIiwibW9kdWxlIiwiZGVmaW5lIiwiYW1kIiwiYSIsImkiLCJnbG9iYWwiLCJyZXF1aXJlIiwiX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fIiwiX193ZWJwYWNrX3JlcXVpcmVfXyIsIm1vZHVsZUlkIiwiY2FjaGVkTW9kdWxlIiwidW5kZWZpbmVkIiwiX193ZWJwYWNrX21vZHVsZXNfXyIsIm4iLCJnZXR0ZXIiLCJfX2VzTW9kdWxlIiwiZCIsImRlZmluaXRpb24iLCJrZXkiLCJvIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJlbnVtZXJhYmxlIiwiZ2V0Iiwib2JqIiwicHJvcCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsInIiLCJTeW1ib2wiLCJ0b1N0cmluZ1RhZyIsInZhbHVlIiwiTWVkaWFTaXplTmFtZSIsIkNocm9tYXRpY2l0eSIsIlNpZGVzIiwiTWVkaWFUcmF5IiwiT3JpZW50YXRpb25SZXF1ZXN0ZWQiLCJTY2FsaW5nIiwiU3Vic2V0IiwiUHJpbnRlckFjdGlvbnMiLCJpc1VzaW5nQXNhciIsInNvbWUiLCJhcmd1bWVudCIsImluY2x1ZGVzIiwiZml4UGF0aEZvckFzYXJVbnBhY2siLCJlbGVjdHJvbiIsInBhdGgiLCJyZXBsYWNlQWxsIiwiX19hd2FpdGVyIiwidGhpc0FyZyIsIl9hcmd1bWVudHMiLCJQIiwiZ2VuZXJhdG9yIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJmdWxmaWxsZWQiLCJzdGVwIiwibmV4dCIsImUiLCJyZWplY3RlZCIsInJlc3VsdCIsImRvbmUiLCJ0aGVuIiwiYXBwbHkiLCJfX2dlbmVyYXRvciIsImJvZHkiLCJmIiwieSIsInQiLCJfIiwibGFiZWwiLCJzZW50IiwidHJ5cyIsIm9wcyIsImciLCJjcmVhdGUiLCJJdGVyYXRvciIsInZlcmIiLCJpdGVyYXRvciIsInRoaXMiLCJ2Iiwib3AiLCJUeXBlRXJyb3IiLCJwb3AiLCJsZW5ndGgiLCJwdXNoIiwiSmF2YUNhbGxlciIsImpvaW4iLCJfX2Rpcm5hbWUiLCJmaXhQYXRoIiwiamF2YUFyZ3MiLCJQYXJhbWV0ZXIiLCJjb25jYXQiLCJpbml0SmF2YSIsImluc3RhbmNlIiwiaG9tZVBhdGgiLCJleGVOYW1lIiwiX2EiLCJhbGxvd0pyZSIsImVyciIsImhvbWUiLCJFcnJvciIsImphciIsIm1haW5DbGFzcyIsImFkZGl0aW9uYWxKYXZhQXJncyIsImphdmFFeGVjdXRhYmxlIiwicnVuIiwicHJpbnRlciIsImFyZ3MiLCJzdGRvdXQiLCJfYiIsImFyZyIsInByaW50ZXJOYW1lIiwic3RhdHVzIiwic3RkZXJyIiwidHJpbSIsInByaW50UnVuIiwicHJpbnQiLCJqYXZhIiwiYmFzZTY0U3RyIiwiQnVmZmVyIiwiZnJvbSIsIkpTT04iLCJzdHJpbmdpZnkiLCJ0b1N0cmluZyIsInBpbnRlciIsInBkZiIsIlBSSU5UIiwiUFJJTlRFUlMiLCJwYXJzZSIsIkRFRkFVTFQiLCJfX3NwcmVhZEFycmF5IiwidG8iLCJwYWNrIiwiYXJndW1lbnRzIiwiYXIiLCJsIiwiQXJyYXkiLCJzbGljZSIsImdldFBhcGVyU2l6ZUluZm8iLCJhcmdzXzEiLCJfaSIsIm9wdGlvbnMiLCJTSVpFSU5GTyIsImdldFBhcGVyU2l6ZUluZm9BbGwiLCJTSVpFSU5GT1MiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==
1
+ !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var r in n)("object"==typeof exports?exports:e)[r]=n[r]}}(global,()=>(()=>{"use strict";var e={574(e,t,n){var r,o,a,i,c,u,s,l;n.d(t,{PrinterActions:()=>l}),function(e){e.ISO_A0="iso-a0",e.ISO_A1="iso-a1",e.ISO_A2="iso-a2",e.ISO_A3="iso-a3",e.ISO_A4="iso-a4",e.ISO_A5="iso-a5",e.ISO_A6="iso-a6",e.ISO_A7="iso-a7",e.ISO_A8="iso-a8",e.ISO_A9="iso-a9",e.ISO_A10="iso-a10",e.ISO_B0="iso-b0",e.ISO_B1="iso-b1",e.ISO_B2="iso-b2",e.ISO_B3="iso-b3",e.ISO_B4="iso-b4",e.ISO_B5="iso-b5",e.ISO_B6="iso-b6",e.ISO_B7="iso-b7",e.ISO_B8="iso-b8",e.ISO_B9="iso-b9",e.ISO_B10="iso-b10",e.JIS_B0="jis-b0",e.JIS_B1="jis-b1",e.JIS_B2="jis-b2",e.JIS_B3="jis-b3",e.JIS_B4="jis-b4",e.JIS_B5="jis-b5",e.JIS_B6="jis-b6",e.JIS_B7="jis-b7",e.JIS_B8="jis-b8",e.JIS_B9="jis-b9",e.JIS_B10="jis-b10",e.ISO_C0="iso-c0",e.ISO_C1="iso-c1",e.ISO_C2="iso-c2",e.ISO_C3="iso-c3",e.ISO_C4="iso-c4",e.ISO_C5="iso-c5",e.ISO_C6="iso-c6",e.NA_LETTER="na-letter",e.NA_LEGAL="na-legal",e.EXECUTIVE="executive",e.LEDGER="ledger",e.TABLOID="tabloid",e.INVOICE="invoice",e.FOLIO="folio",e.QUARTO="quarto",e.JAPANESE_POSTCARD="japanese-postcard",e.JAPANESE_DOUBLE_POSTCARD="oufuko-postcard",e.A="a",e.B="b",e.C="c",e.D="d",e.E="e",e.ISO_DESIGNATED_LONG="iso-designated-long",e.ITALY_ENVELOPE="italian-envelope",e.MONARCH_ENVELOPE="monarch-envelope",e.PERSONAL_ENVELOPE="personal-envelope",e.NA_NUMBER_9_ENVELOPE="na-number-9-envelope",e.NA_NUMBER_10_ENVELOPE="na-number-10-envelope",e.NA_NUMBER_11_ENVELOPE="na-number-11-envelope",e.NA_NUMBER_12_ENVELOPE="na-number-12-envelope",e.NA_NUMBER_14_ENVELOPE="na-number-14-envelope",e.NA_6X9_ENVELOPE="na-6x9-envelope",e.NA_7X9_ENVELOPE="na-7x9-envelope",e.NA_9X11_ENVELOPE="na-9x11-envelope",e.NA_9X12_ENVELOPE="na-9x12-envelope",e.NA_10X13_ENVELOPE="na-10x13-envelope",e.NA_10X14_ENVELOPE="na-10x14-envelope",e.NA_10X15_ENVELOPE="na-10x15-envelope",e.NA_5X7="na-5x7",e.NA_8X10="na-8x10"}(r||(r={})),function(e){e.MONOCHROME="monochrome",e.COLOR="color"}(o||(o={})),function(e){e.ONE_SIDED="one-sided",e.TWO_SIDED_LONG_EDGE="two-sided-long-edge",e.TWO_SIDED_SHORT_EDGE="two-sided-short-edge"}(a||(a={})),function(e){e.TOP="top",e.MIDDLE="middle",e.BOTTOM="bottom",e.ENVELOPE="envelope",e.MANUAL="manual",e.LARGE_CAPACITY="large-capacity",e.MAIN="main",e.SIDE="side"}(i||(i={})),function(e){e.PORTRAIT="portrait",e.LANDSCAPE="landscape",e.REVERSE_LANDSCAPE="reverseLandscape",e.REVERSE_PORTRAIT="reversePortrait"}(c||(c={})),function(e){e.ACTUAL_SIZE="actual-size",e.SHRINK_TO_FIT="shrink-to-fits",e.STRETCH_TO_FIT="stretch-to-fits",e.SCALE_TO_FIT="scale-to-fits"}(u||(u={})),function(e){e.ALL="all",e.ODD="odd",e.EVEN="even"}(s||(s={})),function(e){e.DEFAULT="default",e.PRINTERS="printers",e.SIZEINFO="sizeInfo",e.SIZEINFOS="sizeInfos",e.PRINT="print"}(l||(l={}))}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var a=t[r]={exports:{}};return e[r](a,a.exports,n),a.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};n.r(r),n.d(r,{getDefaultPrinter:()=>m,getPaperSizeInfo:()=>j,getPaperSizeInfoAll:()=>B,getPrinters:()=>g,print:()=>P});const o=require("fs");var a=n.n(o),i=n(574);const c=require("node:path"),u=require("node:process"),s=""in u.versions&&u.argv.some(e=>e?.includes("app.asar")),l=(u.versions.electron,e=>s?e.replaceAll("app.asar","app.asar.unpacked"):e),f=require("node:os"),p=require("find-java-home");var b=n.n(p);const v=require("java-caller");var h=function(e,t,n,r){return new(n||(n=Promise))(function(o,a){function i(e){try{u(r.next(e))}catch(e){a(e)}}function c(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(i,c)}u((r=r.apply(e,t||[])).next())})},d=function(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=c(0),i.throw=c(1),i.return=c(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(c){return function(u){return function(c){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==c[0]&&2!==c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,u])}}},E=(0,c.join)(__dirname,"printer.jar"),y=l(E),_=["-Dfile.encoding=UTF-8"];"linux"==f.platform()&&_.push("-Djavax.accessibility.assistive_technologies=' '");var O="".concat(y);function S(){return h(this,void 0,void 0,function(){var e,t,n;return d(this,function(r){switch(r.label){case 0:return[4,new Promise(function(e,t){b()({allowJre:!0},function(n,r){n||!r?t(n||new Error("Java Home not found")):e(r)})})];case 1:return e=r.sent(),t={jar:O,mainClass:"com.tk.lyin.Printers",additionalJavaArgs:_},e&&(n="win32"===f.platform()?"java.exe":"java",t.javaExecutable=l((0,c.join)(e,"bin",n))),[2,new v.JavaCaller(t)]}})})}var I=function(e){return h(void 0,void 0,void 0,function(){var t,n,r,o;return d(this,function(a){switch(a.label){case 0:return(t=[]).push(e.arg),(n=e.printerName)&&t.push(n),[4,S()];case 1:return[4,a.sent().run(t)];case 2:return(r=a.sent()).status,o=r.stdout,r.stderr,[2,o?o.trim():"{}"]}})})},w=function(e,t){return h(void 0,void 0,void 0,function(){var n,r,o;return d(this,function(a){switch(a.label){case 0:return[4,S()];case 1:return n=a.sent(),r=Buffer.from(JSON.stringify(t).trim()).toString("base64"),[4,n.run([e.arg,r])];case 2:return(o=a.sent()).status,o.stdout,o.stderr,[2]}})})},A=function(e,t,n,r){return new(n||(n=Promise))(function(o,a){function i(e){try{u(r.next(e))}catch(e){a(e)}}function c(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(i,c)}u((r=r.apply(e,t||[])).next())})},N=function(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=c(0),i.throw=c(1),i.return=c(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(c){return function(u){return function(c){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==c[0]&&2!==c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,u])}}};function P(e){return A(this,void 0,void 0,function(){var t;return N(this,function(n){switch(n.label){case 0:if(!(t=e.pdf))throw"No PDF specified";if(!a().existsSync(t))throw"No such file";return[4,w({arg:i.PrinterActions.PRINT},e)];case 1:return n.sent(),[2]}})})}const g=function(){return e=this,t=void 0,r=function(){var e;return function(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=c(0),i.throw=c(1),i.return=c(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(c){return function(u){return function(c){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==c[0]&&2!==c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,u])}}}(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),[4,I({arg:i.PrinterActions.PRINTERS})];case 1:return e=t.sent(),[2,JSON.parse(e)];case 2:throw t.sent();case 3:return[2]}})},new((n=void 0)||(n=Promise))(function(o,a){function i(e){try{u(r.next(e))}catch(e){a(e)}}function c(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(i,c)}u((r=r.apply(e,t||[])).next())});var e,t,n,r};const m=function(){return e=this,t=void 0,r=function(){var e;return function(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=c(0),i.throw=c(1),i.return=c(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(c){return function(u){return function(c){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==c[0]&&2!==c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,u])}}}(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),[4,I({arg:i.PrinterActions.DEFAULT})];case 1:return e=t.sent(),[2,JSON.parse(e)];case 2:throw t.sent();case 3:return[2]}})},new((n=void 0)||(n=Promise))(function(o,a){function i(e){try{u(r.next(e))}catch(e){a(e)}}function c(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(i,c)}u((r=r.apply(e,t||[])).next())});var e,t,n,r};var x=function(e,t,n,r){return new(n||(n=Promise))(function(o,a){function i(e){try{u(r.next(e))}catch(e){a(e)}}function c(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(i,c)}u((r=r.apply(e,t||[])).next())})},T=function(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=c(0),i.throw=c(1),i.return=c(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(c){return function(u){return function(c){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==c[0]&&2!==c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,u])}}},L=function(e,t,n){if(n||2===arguments.length)for(var r,o=0,a=t.length;o<a;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))},j=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return x(void 0,L([],e,!0),void 0,function(e){var t;return void 0===e&&(e={printer:""}),T(this,function(n){switch(n.label){case 0:return n.trys.push([0,2,,3]),[4,I({arg:i.PrinterActions.SIZEINFO,printerName:e.printer})];case 1:return t=n.sent(),[2,JSON.parse(t)];case 2:throw n.sent();case 3:return[2]}})})},B=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return x(void 0,L([],e,!0),void 0,function(e){var t;return void 0===e&&(e={}),T(this,function(e){switch(e.label){case 0:return e.trys.push([0,2,,3]),[4,I({arg:i.PrinterActions.SIZEINFOS})];case 1:return t=e.sent(),[2,JSON.parse(t)];case 2:throw e.sent();case 3:return[2]}})})};return r})());
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFLUCxVQUFVakQsT0FBUXdELElBQ3BDRCxFQUFPQyxHQUFNUCxVQUFVTyxHQUUzQixPQUFPLE9BQWUsRUFBR1YsRUFBYyxHQUFJUyxHQUFRLFFBQVksRUFBRyxTQUFVRSxHQUN4RSxJQUFJakYsRUFFSixZQURxQixJQUFqQmlGLElBQXNCQSxFQUFVLENBQUMsR0FDOUIsRUFBWTlELEtBQU0sU0FBVWlCLEdBQy9CLE9BQVFBLEVBQUcxQixPQUNQLEtBQUssRUFFRCxPQURBMEIsRUFBR3hCLEtBQUthLEtBQUssQ0FBQyxFQUFHLEVBQUcsQ0FBRSxJQUNmLENBQUMsRUFBYXFCLEVBQUksQ0FDakJNLElBQUssRUFBQXJHLGVBQWVxSSxhQUVoQyxLQUFLLEVBRUQsT0FEQXBGLEVBQVNvQyxFQUFHekIsT0FDTCxDQUFDLEVBQWNtRCxLQUFLTSxNQUFNcEUsSUFDckMsS0FBSyxFQUVELE1BRFVvQyxFQUFHekIsT0FFakIsS0FBSyxFQUFHLE1BQU8sQ0FBQyxHQUV4QixFQUNKLEVBQ0osRSIsInNvdXJjZXMiOlsid2VicGFjazovL3ByaW50ZXItcGRmL3dlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsIndlYnBhY2s6Ly9wcmludGVyLXBkZi8uL3NyYy90eXBlcy9pbmRleC50cyIsIndlYnBhY2s6Ly9wcmludGVyLXBkZi93ZWJwYWNrL2Jvb3RzdHJhcCIsIndlYnBhY2s6Ly9wcmludGVyLXBkZi93ZWJwYWNrL3J1bnRpbWUvY29tcGF0IGdldCBkZWZhdWx0IGV4cG9ydCIsIndlYnBhY2s6Ly9wcmludGVyLXBkZi93ZWJwYWNrL3J1bnRpbWUvZGVmaW5lIHByb3BlcnR5IGdldHRlcnMiLCJ3ZWJwYWNrOi8vcHJpbnRlci1wZGYvd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZCIsIndlYnBhY2s6Ly9wcmludGVyLXBkZi93ZWJwYWNrL3J1bnRpbWUvbWFrZSBuYW1lc3BhY2Ugb2JqZWN0Iiwid2VicGFjazovL3ByaW50ZXItcGRmL2V4dGVybmFsIG5vZGUtY29tbW9uanMgXCJmc1wiIiwid2VicGFjazovL3ByaW50ZXItcGRmL2V4dGVybmFsIG5vZGUtY29tbW9uanMgXCJub2RlOnBhdGhcIiIsIndlYnBhY2s6Ly9wcmludGVyLXBkZi9leHRlcm5hbCBub2RlLWNvbW1vbmpzIFwibm9kZTpwcm9jZXNzXCIiLCJ3ZWJwYWNrOi8vcHJpbnRlci1wZGYvLi9ub2RlX21vZHVsZXMvZWxlY3Ryb24tdXRpbC9kaXN0cmlidXRpb24vbm9kZS9pbmRleC5qcyIsIndlYnBhY2s6Ly9wcmludGVyLXBkZi9leHRlcm5hbCBub2RlLWNvbW1vbmpzIFwibm9kZTpvc1wiIiwid2VicGFjazovL3ByaW50ZXItcGRmL2V4dGVybmFsIGNvbW1vbmpzIFwiZmluZC1qYXZhLWhvbWVcIiIsIndlYnBhY2s6Ly9wcmludGVyLXBkZi9leHRlcm5hbCBjb21tb25qcyBcImphdmEtY2FsbGVyXCIiLCJ3ZWJwYWNrOi8vcHJpbnRlci1wZGYvLi9zcmMvdXRpbHMvamF2YS11dGlsLnRzIiwid2VicGFjazovL3ByaW50ZXItcGRmLy4vc3JjL3ByaW50L3ByaW50LnRzIiwid2VicGFjazovL3ByaW50ZXItcGRmLy4vc3JjL2dldC1wcmludGVycy9nZXQtcHJpbnRlcnMudHMiLCJ3ZWJwYWNrOi8vcHJpbnRlci1wZGYvLi9zcmMvZ2V0LWRlZmF1bHQtcHJpbnRlci9nZXQtZGVmYXVsdC1wcmludGVyLnRzIiwid2VicGFjazovL3ByaW50ZXItcGRmLy4vc3JjL2dldC1wYXBlci1zaXplL2dldC1wYXBlci1zaXplLWluZm8udHMiXSwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uIHdlYnBhY2tVbml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uKHJvb3QsIGZhY3RvcnkpIHtcblx0aWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgPT09ICdvYmplY3QnKVxuXHRcdG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeSgpO1xuXHRlbHNlIGlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZClcblx0XHRkZWZpbmUoW10sIGZhY3RvcnkpO1xuXHRlbHNlIHtcblx0XHR2YXIgYSA9IGZhY3RvcnkoKTtcblx0XHRmb3IodmFyIGkgaW4gYSkgKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyA/IGV4cG9ydHMgOiByb290KVtpXSA9IGFbaV07XG5cdH1cbn0pKGdsb2JhbCwgKCkgPT4ge1xucmV0dXJuICIsIi8vIOe6uOW8oOWkp+Wwj1xuZXhwb3J0IHZhciBNZWRpYVNpemVOYW1lO1xuKGZ1bmN0aW9uIChNZWRpYVNpemVOYW1lKSB7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19BMFwiXSA9IFwiaXNvLWEwXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19BMVwiXSA9IFwiaXNvLWExXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19BMlwiXSA9IFwiaXNvLWEyXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19BM1wiXSA9IFwiaXNvLWEzXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19BNFwiXSA9IFwiaXNvLWE0XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19BNVwiXSA9IFwiaXNvLWE1XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19BNlwiXSA9IFwiaXNvLWE2XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19BN1wiXSA9IFwiaXNvLWE3XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19BOFwiXSA9IFwiaXNvLWE4XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19BOVwiXSA9IFwiaXNvLWE5XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19BMTBcIl0gPSBcImlzby1hMTBcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0IwXCJdID0gXCJpc28tYjBcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0IxXCJdID0gXCJpc28tYjFcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0IyXCJdID0gXCJpc28tYjJcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0IzXCJdID0gXCJpc28tYjNcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0I0XCJdID0gXCJpc28tYjRcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0I1XCJdID0gXCJpc28tYjVcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0I2XCJdID0gXCJpc28tYjZcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0I3XCJdID0gXCJpc28tYjdcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0I4XCJdID0gXCJpc28tYjhcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0I5XCJdID0gXCJpc28tYjlcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0IxMFwiXSA9IFwiaXNvLWIxMFwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJKSVNfQjBcIl0gPSBcImppcy1iMFwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJKSVNfQjFcIl0gPSBcImppcy1iMVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJKSVNfQjJcIl0gPSBcImppcy1iMlwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJKSVNfQjNcIl0gPSBcImppcy1iM1wiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJKSVNfQjRcIl0gPSBcImppcy1iNFwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJKSVNfQjVcIl0gPSBcImppcy1iNVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJKSVNfQjZcIl0gPSBcImppcy1iNlwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJKSVNfQjdcIl0gPSBcImppcy1iN1wiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJKSVNfQjhcIl0gPSBcImppcy1iOFwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJKSVNfQjlcIl0gPSBcImppcy1iOVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJKSVNfQjEwXCJdID0gXCJqaXMtYjEwXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19DMFwiXSA9IFwiaXNvLWMwXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19DMVwiXSA9IFwiaXNvLWMxXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19DMlwiXSA9IFwiaXNvLWMyXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19DM1wiXSA9IFwiaXNvLWMzXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19DNFwiXSA9IFwiaXNvLWM0XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19DNVwiXSA9IFwiaXNvLWM1XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19DNlwiXSA9IFwiaXNvLWM2XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIk5BX0xFVFRFUlwiXSA9IFwibmEtbGV0dGVyXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIk5BX0xFR0FMXCJdID0gXCJuYS1sZWdhbFwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJFWEVDVVRJVkVcIl0gPSBcImV4ZWN1dGl2ZVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJMRURHRVJcIl0gPSBcImxlZGdlclwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJUQUJMT0lEXCJdID0gXCJ0YWJsb2lkXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklOVk9JQ0VcIl0gPSBcImludm9pY2VcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiRk9MSU9cIl0gPSBcImZvbGlvXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIlFVQVJUT1wiXSA9IFwicXVhcnRvXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkpBUEFORVNFX1BPU1RDQVJEXCJdID0gXCJqYXBhbmVzZS1wb3N0Y2FyZFwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJKQVBBTkVTRV9ET1VCTEVfUE9TVENBUkRcIl0gPSBcIm91ZnVrby1wb3N0Y2FyZFwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJBXCJdID0gXCJhXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkJcIl0gPSBcImJcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiQ1wiXSA9IFwiY1wiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJEXCJdID0gXCJkXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkVcIl0gPSBcImVcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0RFU0lHTkFURURfTE9OR1wiXSA9IFwiaXNvLWRlc2lnbmF0ZWQtbG9uZ1wiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJVEFMWV9FTlZFTE9QRVwiXSA9IFwiaXRhbGlhbi1lbnZlbG9wZVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJNT05BUkNIX0VOVkVMT1BFXCJdID0gXCJtb25hcmNoLWVudmVsb3BlXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIlBFUlNPTkFMX0VOVkVMT1BFXCJdID0gXCJwZXJzb25hbC1lbnZlbG9wZVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJOQV9OVU1CRVJfOV9FTlZFTE9QRVwiXSA9IFwibmEtbnVtYmVyLTktZW52ZWxvcGVcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiTkFfTlVNQkVSXzEwX0VOVkVMT1BFXCJdID0gXCJuYS1udW1iZXItMTAtZW52ZWxvcGVcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiTkFfTlVNQkVSXzExX0VOVkVMT1BFXCJdID0gXCJuYS1udW1iZXItMTEtZW52ZWxvcGVcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiTkFfTlVNQkVSXzEyX0VOVkVMT1BFXCJdID0gXCJuYS1udW1iZXItMTItZW52ZWxvcGVcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiTkFfTlVNQkVSXzE0X0VOVkVMT1BFXCJdID0gXCJuYS1udW1iZXItMTQtZW52ZWxvcGVcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiTkFfNlg5X0VOVkVMT1BFXCJdID0gXCJuYS02eDktZW52ZWxvcGVcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiTkFfN1g5X0VOVkVMT1BFXCJdID0gXCJuYS03eDktZW52ZWxvcGVcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiTkFfOVgxMV9FTlZFTE9QRVwiXSA9IFwibmEtOXgxMS1lbnZlbG9wZVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJOQV85WDEyX0VOVkVMT1BFXCJdID0gXCJuYS05eDEyLWVudmVsb3BlXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIk5BXzEwWDEzX0VOVkVMT1BFXCJdID0gXCJuYS0xMHgxMy1lbnZlbG9wZVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJOQV8xMFgxNF9FTlZFTE9QRVwiXSA9IFwibmEtMTB4MTQtZW52ZWxvcGVcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiTkFfMTBYMTVfRU5WRUxPUEVcIl0gPSBcIm5hLTEweDE1LWVudmVsb3BlXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIk5BXzVYN1wiXSA9IFwibmEtNXg3XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIk5BXzhYMTBcIl0gPSBcIm5hLTh4MTBcIjtcbn0pKE1lZGlhU2l6ZU5hbWUgfHwgKE1lZGlhU2l6ZU5hbWUgPSB7fSkpO1xuLy8g6K6+572u6Imy5b2pXG5leHBvcnQgdmFyIENocm9tYXRpY2l0eTtcbihmdW5jdGlvbiAoQ2hyb21hdGljaXR5KSB7XG4gICAgQ2hyb21hdGljaXR5W1wiTU9OT0NIUk9NRVwiXSA9IFwibW9ub2Nocm9tZVwiO1xuICAgIENocm9tYXRpY2l0eVtcIkNPTE9SXCJdID0gXCJjb2xvclwiO1xufSkoQ2hyb21hdGljaXR5IHx8IChDaHJvbWF0aWNpdHkgPSB7fSkpO1xuLy8g6K6+572u5Y+M6Z2i5omT5Y2wXG5leHBvcnQgdmFyIFNpZGVzO1xuKGZ1bmN0aW9uIChTaWRlcykge1xuICAgIFNpZGVzW1wiT05FX1NJREVEXCJdID0gXCJvbmUtc2lkZWRcIjtcbiAgICBTaWRlc1tcIlRXT19TSURFRF9MT05HX0VER0VcIl0gPSBcInR3by1zaWRlZC1sb25nLWVkZ2VcIjtcbiAgICBTaWRlc1tcIlRXT19TSURFRF9TSE9SVF9FREdFXCJdID0gXCJ0d28tc2lkZWQtc2hvcnQtZWRnZVwiO1xufSkoU2lkZXMgfHwgKFNpZGVzID0ge30pKTtcbi8vIOWiqOebkuexu+Wei1xuZXhwb3J0IHZhciBNZWRpYVRyYXk7XG4oZnVuY3Rpb24gKE1lZGlhVHJheSkge1xuICAgIE1lZGlhVHJheVtcIlRPUFwiXSA9IFwidG9wXCI7XG4gICAgTWVkaWFUcmF5W1wiTUlERExFXCJdID0gXCJtaWRkbGVcIjtcbiAgICBNZWRpYVRyYXlbXCJCT1RUT01cIl0gPSBcImJvdHRvbVwiO1xuICAgIE1lZGlhVHJheVtcIkVOVkVMT1BFXCJdID0gXCJlbnZlbG9wZVwiO1xuICAgIE1lZGlhVHJheVtcIk1BTlVBTFwiXSA9IFwibWFudWFsXCI7XG4gICAgTWVkaWFUcmF5W1wiTEFSR0VfQ0FQQUNJVFlcIl0gPSBcImxhcmdlLWNhcGFjaXR5XCI7XG4gICAgTWVkaWFUcmF5W1wiTUFJTlwiXSA9IFwibWFpblwiO1xuICAgIE1lZGlhVHJheVtcIlNJREVcIl0gPSBcInNpZGVcIjtcbn0pKE1lZGlhVHJheSB8fCAoTWVkaWFUcmF5ID0ge30pKTtcbi8vIOiuvue9ruaJk+WNsOacuuaWueWQkVxuZXhwb3J0IHZhciBPcmllbnRhdGlvblJlcXVlc3RlZDtcbihmdW5jdGlvbiAoT3JpZW50YXRpb25SZXF1ZXN0ZWQpIHtcbiAgICBPcmllbnRhdGlvblJlcXVlc3RlZFtcIlBPUlRSQUlUXCJdID0gXCJwb3J0cmFpdFwiO1xuICAgIE9yaWVudGF0aW9uUmVxdWVzdGVkW1wiTEFORFNDQVBFXCJdID0gXCJsYW5kc2NhcGVcIjtcbiAgICBPcmllbnRhdGlvblJlcXVlc3RlZFtcIlJFVkVSU0VfTEFORFNDQVBFXCJdID0gXCJyZXZlcnNlTGFuZHNjYXBlXCI7XG4gICAgT3JpZW50YXRpb25SZXF1ZXN0ZWRbXCJSRVZFUlNFX1BPUlRSQUlUXCJdID0gXCJyZXZlcnNlUG9ydHJhaXRcIjtcbn0pKE9yaWVudGF0aW9uUmVxdWVzdGVkIHx8IChPcmllbnRhdGlvblJlcXVlc3RlZCA9IHt9KSk7XG5leHBvcnQgdmFyIFNjYWxpbmc7XG4oZnVuY3Rpb24gKFNjYWxpbmcpIHtcbiAgICBTY2FsaW5nW1wiQUNUVUFMX1NJWkVcIl0gPSBcImFjdHVhbC1zaXplXCI7XG4gICAgU2NhbGluZ1tcIlNIUklOS19UT19GSVRcIl0gPSBcInNocmluay10by1maXRzXCI7XG4gICAgU2NhbGluZ1tcIlNUUkVUQ0hfVE9fRklUXCJdID0gXCJzdHJldGNoLXRvLWZpdHNcIjtcbiAgICBTY2FsaW5nW1wiU0NBTEVfVE9fRklUXCJdID0gXCJzY2FsZS10by1maXRzXCI7XG59KShTY2FsaW5nIHx8IChTY2FsaW5nID0ge30pKTtcbmV4cG9ydCB2YXIgU3Vic2V0O1xuKGZ1bmN0aW9uIChTdWJzZXQpIHtcbiAgICBTdWJzZXRbXCJBTExcIl0gPSBcImFsbFwiO1xuICAgIFN1YnNldFtcIk9ERFwiXSA9IFwib2RkXCI7XG4gICAgU3Vic2V0W1wiRVZFTlwiXSA9IFwiZXZlblwiO1xufSkoU3Vic2V0IHx8IChTdWJzZXQgPSB7fSkpO1xuZXhwb3J0IHZhciBQcmludGVyQWN0aW9ucztcbihmdW5jdGlvbiAoUHJpbnRlckFjdGlvbnMpIHtcbiAgICBQcmludGVyQWN0aW9uc1tcIkRFRkFVTFRcIl0gPSBcImRlZmF1bHRcIjtcbiAgICBQcmludGVyQWN0aW9uc1tcIlBSSU5URVJTXCJdID0gXCJwcmludGVyc1wiO1xuICAgIFByaW50ZXJBY3Rpb25zW1wiU0laRUlORk9cIl0gPSBcInNpemVJbmZvXCI7XG4gICAgUHJpbnRlckFjdGlvbnNbXCJTSVpFSU5GT1NcIl0gPSBcInNpemVJbmZvc1wiO1xuICAgIFByaW50ZXJBY3Rpb25zW1wiUFJJTlRcIl0gPSBcInByaW50XCI7XG59KShQcmludGVyQWN0aW9ucyB8fCAoUHJpbnRlckFjdGlvbnMgPSB7fSkpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYVc1a1pYZ3Vhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lJdUxpOHVMaTl6Y21NdmRIbHdaWE12YVc1a1pYZ3VkSE1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJa0ZCZVVKQkxFOUJRVTg3UVVGRFVDeE5RVUZOTEVOQlFVNHNTVUZCV1N4aFFUQkZXRHRCUVRGRlJDeFhRVUZaTEdGQlFXRTdTVUZEZGtJc2EwTkJRV2xDTEVOQlFVRTdTVUZEYWtJc2EwTkJRV2xDTEVOQlFVRTdTVUZEYWtJc2EwTkJRV2xDTEVOQlFVRTdTVUZEYWtJc2EwTkJRV2xDTEVOQlFVRTdTVUZEYWtJc2EwTkJRV2xDTEVOQlFVRTdTVUZEYWtJc2EwTkJRV2xDTEVOQlFVRTdTVUZEYWtJc2EwTkJRV2xDTEVOQlFVRTdTVUZEYWtJc2EwTkJRV2xDTEVOQlFVRTdTVUZEYWtJc2EwTkJRV2xDTEVOQlFVRTdTVUZEYWtJc2EwTkJRV2xDTEVOQlFVRTdTVUZEYWtJc2IwTkJRVzFDTEVOQlFVRTdTVUZEYmtJc2EwTkJRV2xDTEVOQlFVRTdTVUZEYWtJc2EwTkJRV2xDTEVOQlFVRTdTVUZEYWtJc2EwTkJRV2xDTEVOQlFVRTdTVUZEYWtJc2EwTkJRV2xDTEVOQlFVRTdTVUZEYWtJc2EwTkJRV2xDTEVOQlFVRTdTVUZEYWtJc2EwTkJRV2xDTEVOQlFVRTdTVUZEYWtJc2EwTkJRV2xDTEVOQlFVRTdTVUZEYWtJc2EwTkJRV2xDTEVOQlFVRTdTVUZEYWtJc2EwTkJRV2xDTEVOQlFVRTdTVUZEYWtJc2EwTkJRV2xDTEVOQlFVRTdTVUZEYWtJc2IwTkJRVzFDTEVOQlFVRTdTVUZEYmtJc2EwTkJRV2xDTEVOQlFVRTdTVUZEYWtJc2EwTkJRV2xDTEVOQlFVRTdTVUZEYWtJc2EwTkJRV2xDTEVOQlFVRTdTVUZEYWtJc2EwTkJRV2xDTEVOQlFVRTdTVUZEYWtJc2EwTkJRV2xDTEVOQlFVRTdTVUZEYWtJc2EwTkJRV2xDTEVOQlFVRTdTVUZEYWtJc2EwTkJRV2xDTEVOQlFVRTdTVUZEYWtJc2EwTkJRV2xDTEVOQlFVRTdTVUZEYWtJc2EwTkJRV2xDTEVOQlFVRTdTVUZEYWtJc2EwTkJRV2xDTEVOQlFVRTdTVUZEYWtJc2IwTkJRVzFDTEVOQlFVRTdTVUZEYmtJc2EwTkJRV2xDTEVOQlFVRTdTVUZEYWtJc2EwTkJRV2xDTEVOQlFVRTdTVUZEYWtJc2EwTkJRV2xDTEVOQlFVRTdTVUZEYWtJc2EwTkJRV2xDTEVOQlFVRTdTVUZEYWtJc2EwTkJRV2xDTEVOQlFVRTdTVUZEYWtJc2EwTkJRV2xDTEVOQlFVRTdTVUZEYWtJc2EwTkJRV2xDTEVOQlFVRTdTVUZEYWtJc2QwTkJRWFZDTEVOQlFVRTdTVUZEZGtJc2MwTkJRWEZDTEVOQlFVRTdTVUZEY2tJc2QwTkJRWFZDTEVOQlFVRTdTVUZEZGtJc2EwTkJRV2xDTEVOQlFVRTdTVUZEYWtJc2IwTkJRVzFDTEVOQlFVRTdTVUZEYmtJc2IwTkJRVzFDTEVOQlFVRTdTVUZEYmtJc1owTkJRV1VzUTBGQlFUdEpRVU5tTEd0RFFVRnBRaXhEUVVGQk8wbEJRMnBDTEhkRVFVRjFReXhEUVVGQk8wbEJRM1pETERaRVFVRTBReXhEUVVGQk8wbEJRelZETEhkQ1FVRlBMRU5CUVVFN1NVRkRVQ3gzUWtGQlR5eERRVUZCTzBsQlExQXNkMEpCUVU4c1EwRkJRVHRKUVVOUUxIZENRVUZQTEVOQlFVRTdTVUZEVUN4M1FrRkJUeXhEUVVGQk8wbEJRMUFzTkVSQlFUSkRMRU5CUVVFN1NVRkRNME1zYjBSQlFXMURMRU5CUVVFN1NVRkRia01zYzBSQlFYRkRMRU5CUVVFN1NVRkRja01zZDBSQlFYVkRMRU5CUVVFN1NVRkRka01zT0VSQlFUWkRMRU5CUVVFN1NVRkROME1zWjBWQlFTdERMRU5CUVVFN1NVRkRMME1zWjBWQlFTdERMRU5CUVVFN1NVRkRMME1zWjBWQlFTdERMRU5CUVVFN1NVRkRMME1zWjBWQlFTdERMRU5CUVVFN1NVRkRMME1zYjBSQlFXMURMRU5CUVVFN1NVRkRia01zYjBSQlFXMURMRU5CUVVFN1NVRkRia01zYzBSQlFYRkRMRU5CUVVFN1NVRkRja01zYzBSQlFYRkRMRU5CUVVFN1NVRkRja01zZDBSQlFYVkRMRU5CUVVFN1NVRkRka01zZDBSQlFYVkRMRU5CUVVFN1NVRkRka01zZDBSQlFYVkRMRU5CUVVFN1NVRkRka01zYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYjBOQlFXMUNMRU5CUVVFN1FVRkRja0lzUTBGQlF5eEZRVEZGVnl4aFFVRmhMRXRCUVdJc1lVRkJZU3hSUVRCRmVFSTdRVUZGUkN4UFFVRlBPMEZCUTFBc1RVRkJUU3hEUVVGT0xFbEJRVmtzV1VGSFdEdEJRVWhFTEZkQlFWa3NXVUZCV1R0SlFVTjBRaXg1UTBGQmVVSXNRMEZCUVR0SlFVTjZRaXdyUWtGQlpTeERRVUZCTzBGQlEycENMRU5CUVVNc1JVRklWeXhaUVVGWkxFdEJRVm9zV1VGQldTeFJRVWQyUWp0QlFVVkVMRk5CUVZNN1FVRkRWQ3hOUVVGTkxFTkJRVTRzU1VGQldTeExRVWxZTzBGQlNrUXNWMEZCV1N4TFFVRkxPMGxCUTJZc1owTkJRWFZDTEVOQlFVRTdTVUZEZGtJc2IwUkJRVEpETEVOQlFVRTdTVUZETTBNc2MwUkJRVFpETEVOQlFVRTdRVUZETDBNc1EwRkJReXhGUVVwWExFdEJRVXNzUzBGQlRDeExRVUZMTEZGQlNXaENPMEZCUlVRc1QwRkJUenRCUVVOUUxFMUJRVTBzUTBGQlRpeEpRVUZaTEZOQlUxZzdRVUZVUkN4WFFVRlpMRk5CUVZNN1NVRkRia0lzZDBKQlFWY3NRMEZCUVR0SlFVTllMRGhDUVVGcFFpeERRVUZCTzBsQlEycENMRGhDUVVGcFFpeERRVUZCTzBsQlEycENMR3REUVVGeFFpeERRVUZCTzBsQlEzSkNMRGhDUVVGcFFpeERRVUZCTzBsQlEycENMRGhEUVVGcFF5eERRVUZCTzBsQlEycERMREJDUVVGaExFTkJRVUU3U1VGRFlpd3dRa0ZCWVN4RFFVRkJPMEZCUTJZc1EwRkJReXhGUVZSWExGTkJRVk1zUzBGQlZDeFRRVUZUTEZGQlUzQkNPMEZCUlVRc1ZVRkJWVHRCUVVOV0xFMUJRVTBzUTBGQlRpeEpRVUZaTEc5Q1FVdFlPMEZCVEVRc1YwRkJXU3h2UWtGQmIwSTdTVUZET1VJc05rTkJRWEZDTEVOQlFVRTdTVUZEY2tJc0swTkJRWFZDTEVOQlFVRTdTVUZEZGtJc09FUkJRWE5ETEVOQlFVRTdTVUZEZEVNc05FUkJRVzlETEVOQlFVRTdRVUZEZEVNc1EwRkJReXhGUVV4WExHOUNRVUZ2UWl4TFFVRndRaXh2UWtGQmIwSXNVVUZMTDBJN1FVRkZSQ3hOUVVGTkxFTkJRVTRzU1VGQldTeFBRVXRZTzBGQlRFUXNWMEZCV1N4UFFVRlBPMGxCUTJwQ0xITkRRVUV5UWl4RFFVRkJPMGxCUXpOQ0xESkRRVUZuUXl4RFFVRkJPMGxCUTJoRExEWkRRVUZyUXl4RFFVRkJPMGxCUTJ4RExIbERRVUU0UWl4RFFVRkJPMEZCUTJoRExFTkJRVU1zUlVGTVZ5eFBRVUZQTEV0QlFWQXNUMEZCVHl4UlFVdHNRanRCUVVWRUxFMUJRVTBzUTBGQlRpeEpRVUZaTEUxQlNWZzdRVUZLUkN4WFFVRlpMRTFCUVUwN1NVRkRhRUlzY1VKQlFWY3NRMEZCUVR0SlFVTllMSEZDUVVGWExFTkJRVUU3U1VGRFdDeDFRa0ZCWVN4RFFVRkJPMEZCUTJZc1EwRkJReXhGUVVwWExFMUJRVTBzUzBGQlRpeE5RVUZOTEZGQlNXcENPMEZCUlVRc1RVRkJUU3hEUVVGT0xFbEJRVmtzWTBGTldEdEJRVTVFTEZkQlFWa3NZMEZCWXp0SlFVTjRRaXh4UTBGQmJVSXNRMEZCUVR0SlFVTnVRaXgxUTBGQmNVSXNRMEZCUVR0SlFVTnlRaXgxUTBGQmNVSXNRMEZCUVR0SlFVTnlRaXg1UTBGQmRVSXNRMEZCUVR0SlFVTjJRaXhwUTBGQlpTeERRVUZCTzBGQlEycENMRU5CUVVNc1JVRk9WeXhqUVVGakxFdEJRV1FzWTBGQll5eFJRVTE2UWlKOSIsIi8vIFRoZSBtb2R1bGUgY2FjaGVcbnZhciBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18gPSB7fTtcblxuLy8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbmZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG5cdHZhciBjYWNoZWRNb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdO1xuXHRpZiAoY2FjaGVkTW9kdWxlICE9PSB1bmRlZmluZWQpIHtcblx0XHRyZXR1cm4gY2FjaGVkTW9kdWxlLmV4cG9ydHM7XG5cdH1cblx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcblx0dmFyIG1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF0gPSB7XG5cdFx0Ly8gbm8gbW9kdWxlLmlkIG5lZWRlZFxuXHRcdC8vIG5vIG1vZHVsZS5sb2FkZWQgbmVlZGVkXG5cdFx0ZXhwb3J0czoge31cblx0fTtcblxuXHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cblx0X193ZWJwYWNrX21vZHVsZXNfX1ttb2R1bGVJZF0obW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cblx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcblx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xufVxuXG4iLCIvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuX193ZWJwYWNrX3JlcXVpcmVfXy5uID0gKG1vZHVsZSkgPT4ge1xuXHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cblx0XHQoKSA9PiAobW9kdWxlWydkZWZhdWx0J10pIDpcblx0XHQoKSA9PiAobW9kdWxlKTtcblx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgeyBhOiBnZXR0ZXIgfSk7XG5cdHJldHVybiBnZXR0ZXI7XG59OyIsIi8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb25zIGZvciBoYXJtb255IGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uZCA9IChleHBvcnRzLCBkZWZpbml0aW9uKSA9PiB7XG5cdGZvcih2YXIga2V5IGluIGRlZmluaXRpb24pIHtcblx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZGVmaW5pdGlvbiwga2V5KSAmJiAhX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIGtleSkpIHtcblx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBrZXksIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBkZWZpbml0aW9uW2tleV0gfSk7XG5cdFx0fVxuXHR9XG59OyIsIl9fd2VicGFja19yZXF1aXJlX18ubyA9IChvYmosIHByb3ApID0+IChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKSkiLCIvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSAoZXhwb3J0cykgPT4ge1xuXHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcblx0fVxuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xufTsiLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcImZzXCIpOyIsImNvbnN0IF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSByZXF1aXJlKFwibm9kZTpwYXRoXCIpOyIsImNvbnN0IF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSByZXF1aXJlKFwibm9kZTpwcm9jZXNzXCIpOyIsImltcG9ydCBwcm9jZXNzIGZyb20gJ25vZGU6cHJvY2Vzcyc7XG4vKipcbkNoZWNrIGlmIHRoZSBjb2RlIGlzIHJ1bm5pbmcgaW4gYW4gRWxlY3Ryb24gZW52aXJvbm1lbnQuXG5cbkBleGFtcGxlXG5gYGBcbmltcG9ydCB7aXNFbGVjdHJvbn0gZnJvbSAnZWxlY3Ryb24tdXRpbC9ub2RlJztcblxuY29uc29sZS5sb2coaXNFbGVjdHJvbik7XG4vLz0+IHRydWUgd2hlbiBpbiBFbGVjdHJvbiwgZmFsc2Ugd2hlbiBpbiBOb2RlLmpzXG5gYGBcbiovXG5leHBvcnQgY29uc3QgaXNFbGVjdHJvbiA9ICdlbGVjdHJvbicgaW4gcHJvY2Vzcy52ZXJzaW9ucztcbi8qKlxuQ2hlY2sgaWYgdGhlIGFwcCBpcyB1c2luZyBbQVNBUl0oaHR0cHM6Ly9lbGVjdHJvbmpzLm9yZy9kb2NzL3R1dG9yaWFsL2FwcGxpY2F0aW9uLXBhY2thZ2luZy8pLlxuXG5AZXhhbXBsZVxuYGBgXG5pbXBvcnQge2lzVXNpbmdBc2FyfSBmcm9tICdlbGVjdHJvbi11dGlsL25vZGUnO1xuXG5pZiAoaXNVc2luZ0FzYXIpIHtcbiAgICBjb25zb2xlLmxvZygnUnVubmluZyBmcm9tIGFuIEFTQVIgYXJjaGl2ZScpO1xufVxuYGBgXG4qL1xuZXhwb3J0IGNvbnN0IGlzVXNpbmdBc2FyID0gaXNFbGVjdHJvbiAmJiBwcm9jZXNzLmFyZ3Yuc29tZShhcmd1bWVudCA9PiBhcmd1bWVudD8uaW5jbHVkZXMoJ2FwcC5hc2FyJykpO1xuLyoqXG5FbGVjdHJvbiB2ZXJzaW9uLlxuXG5AZXhhbXBsZVxuYGBgXG4nMS43LjknXG5gYGBcbiovXG5leHBvcnQgY29uc3QgZWxlY3Ryb25WZXJzaW9uID0gcHJvY2Vzcy52ZXJzaW9ucy5lbGVjdHJvbiA/PyAnMC4wLjAnO1xuLyoqXG5BU0FSIGlzIGdyZWF0LCBidXQgaXQgaGFzIFtsaW1pdGF0aW9ucyB3aGVuIGl0IGNvbWVzIHRvIGV4ZWN1dGluZyBiaW5hcmllc10oaHR0cHM6Ly9lbGVjdHJvbmpzLm9yZy9kb2NzL3R1dG9yaWFsL2FwcGxpY2F0aW9uLXBhY2thZ2luZy8jZXhlY3V0aW5nLWJpbmFyaWVzLWluc2lkZS1hc2FyLWFyY2hpdmUpLlxuRm9yIGV4YW1wbGUsIFtgY2hpbGRfcHJvY2Vzcy5zcGF3bigpYCBpcyBub3QgYXV0b21hdGljYWxseSBoYW5kbGVkXShodHRwczovL2dpdGh1Yi5jb20vZWxlY3Ryb24vZWxlY3Ryb24vaXNzdWVzLzk0NTkpLlxuU28geW91IHdvdWxkIGhhdmUgdG8gdW5wYWNrIHRoZSBiaW5hcnksIGZvciBleGFtcGxlLCB3aXRoIHRoZSBbYGFzYXJVbnBhY2tgXShodHRwczovL3d3dy5lbGVjdHJvbi5idWlsZC9jb25maWd1cmF0aW9uL2NvbmZpZ3VyYXRpb24jY29uZmlndXJhdGlvbi1hc2FyVW5wYWNrKSBvcHRpb24gaW4gYGVsZWN0cm9uLWJ1aWxkZXJgLlxuVGhpcyBjcmVhdGVzIGEgcHJvYmxlbSBhcyB0aGUgcGF0aCB0byB0aGUgYmluYXJ5IGNoYW5nZXMsIGJ1dCB5b3VyIGBwYXRoLmpvaW4oX19kaXJuYW1lLCAnYmluYXJ5JylgIGlzIG5vdCBjaGFuZ2VkLlxuVG8gbWFrZSBpdCB3b3JrIHlvdSBuZWVkIHRvIGZpeCB0aGUgcGF0aC4gVGhhdCdzIHRoZSBwdXJwb3NlIG9mIHRoaXMgbWV0aG9kLlxuXG5CZWZvcmU6XG4vVXNlcnMvc2luZHJlc29yaHVzL0thcC5hcHAvQ29udGVudHMvUmVzb3VyY2VzL2FwcC5hc2FyL25vZGVfbW9kdWxlcy9mb28vYmluYXJ5XG5cbkFmdGVyOlxuL1VzZXJzL3NpbmRyZXNvcmh1cy9LYXAuYXBwL0NvbnRlbnRzL1Jlc291cmNlcy9hcHAuYXNhci51bnBhY2tlZC9ub2RlX21vZHVsZXMvZm9vL2JpbmFyeVxuXG5AcGFyYW0gcGF0aCAtIEEgcGF0aCBpbiB5b3VyIGFwcC5cbkByZXR1cm5zIFRoZSBmaXhlZCBwYXRoLlxuXG5AZXhhbXBsZVxuYGBgXG5pbXBvcnQge2ZpeFBhdGhGb3JBc2FyVW5wYWNrfSBmcm9tICdlbGVjdHJvbi11dGlsL25vZGUnO1xuXG5jb25zdCBiaW5hcnlQYXRoID0gcGF0aC5qb2luKF9fZGlybmFtZSwgJ2JpbmFyeScpO1xuY29uc3QgZml4ZWRQYXRoID0gZml4UGF0aEZvckFzYXJVbnBhY2soYmluYXJ5UGF0aCk7XG4vLz0+ICcvcGF0aC90by9hcHAuYXNhci51bnBhY2tlZC9iaW5hcnknIHdoZW4gaW4gQVNBUlxuLy89PiAnL3BhdGgvdG8vYmluYXJ5JyBvdGhlcndpc2VcbmBgYFxuKi9cbmV4cG9ydCBjb25zdCBmaXhQYXRoRm9yQXNhclVucGFjayA9IChwYXRoKSA9PiBpc1VzaW5nQXNhciA/IHBhdGgucmVwbGFjZUFsbCgnYXBwLmFzYXInLCAnYXBwLmFzYXIudW5wYWNrZWQnKSA6IHBhdGg7XG4iLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcIm5vZGU6b3NcIik7IiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJmaW5kLWphdmEtaG9tZVwiKTsiLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcImphdmEtY2FsbGVyXCIpOyIsInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xudmFyIF9fZ2VuZXJhdG9yID0gKHRoaXMgJiYgdGhpcy5fX2dlbmVyYXRvcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIGJvZHkpIHtcbiAgICB2YXIgXyA9IHsgbGFiZWw6IDAsIHNlbnQ6IGZ1bmN0aW9uKCkgeyBpZiAodFswXSAmIDEpIHRocm93IHRbMV07IHJldHVybiB0WzFdOyB9LCB0cnlzOiBbXSwgb3BzOiBbXSB9LCBmLCB5LCB0LCBnID0gT2JqZWN0LmNyZWF0ZSgodHlwZW9mIEl0ZXJhdG9yID09PSBcImZ1bmN0aW9uXCIgPyBJdGVyYXRvciA6IE9iamVjdCkucHJvdG90eXBlKTtcbiAgICByZXR1cm4gZy5uZXh0ID0gdmVyYigwKSwgZ1tcInRocm93XCJdID0gdmVyYigxKSwgZ1tcInJldHVyblwiXSA9IHZlcmIoMiksIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiAoZ1tTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzOyB9KSwgZztcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgcmV0dXJuIGZ1bmN0aW9uICh2KSB7IHJldHVybiBzdGVwKFtuLCB2XSk7IH07IH1cbiAgICBmdW5jdGlvbiBzdGVwKG9wKSB7XG4gICAgICAgIGlmIChmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcbiAgICAgICAgd2hpbGUgKGcgJiYgKGcgPSAwLCBvcFswXSAmJiAoXyA9IDApKSwgXykgdHJ5IHtcbiAgICAgICAgICAgIGlmIChmID0gMSwgeSAmJiAodCA9IG9wWzBdICYgMiA/IHlbXCJyZXR1cm5cIl0gOiBvcFswXSA/IHlbXCJ0aHJvd1wiXSB8fCAoKHQgPSB5W1wicmV0dXJuXCJdKSAmJiB0LmNhbGwoeSksIDApIDogeS5uZXh0KSAmJiAhKHQgPSB0LmNhbGwoeSwgb3BbMV0pKS5kb25lKSByZXR1cm4gdDtcbiAgICAgICAgICAgIGlmICh5ID0gMCwgdCkgb3AgPSBbb3BbMF0gJiAyLCB0LnZhbHVlXTtcbiAgICAgICAgICAgIHN3aXRjaCAob3BbMF0pIHtcbiAgICAgICAgICAgICAgICBjYXNlIDA6IGNhc2UgMTogdCA9IG9wOyBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDQ6IF8ubGFiZWwrKzsgcmV0dXJuIHsgdmFsdWU6IG9wWzFdLCBkb25lOiBmYWxzZSB9O1xuICAgICAgICAgICAgICAgIGNhc2UgNTogXy5sYWJlbCsrOyB5ID0gb3BbMV07IG9wID0gWzBdOyBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjYXNlIDc6IG9wID0gXy5vcHMucG9wKCk7IF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEodCA9IF8udHJ5cywgdCA9IHQubGVuZ3RoID4gMCAmJiB0W3QubGVuZ3RoIC0gMV0pICYmIChvcFswXSA9PT0gNiB8fCBvcFswXSA9PT0gMikpIHsgXyA9IDA7IGNvbnRpbnVlOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gMyAmJiAoIXQgfHwgKG9wWzFdID4gdFswXSAmJiBvcFsxXSA8IHRbM10pKSkgeyBfLmxhYmVsID0gb3BbMV07IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gNiAmJiBfLmxhYmVsIDwgdFsxXSkgeyBfLmxhYmVsID0gdFsxXTsgdCA9IG9wOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodCAmJiBfLmxhYmVsIDwgdFsyXSkgeyBfLmxhYmVsID0gdFsyXTsgXy5vcHMucHVzaChvcCk7IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh0WzJdKSBfLm9wcy5wb3AoKTtcbiAgICAgICAgICAgICAgICAgICAgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9wID0gYm9keS5jYWxsKHRoaXNBcmcsIF8pO1xuICAgICAgICB9IGNhdGNoIChlKSB7IG9wID0gWzYsIGVdOyB5ID0gMDsgfSBmaW5hbGx5IHsgZiA9IHQgPSAwOyB9XG4gICAgICAgIGlmIChvcFswXSAmIDUpIHRocm93IG9wWzFdOyByZXR1cm4geyB2YWx1ZTogb3BbMF0gPyBvcFsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9O1xuICAgIH1cbn07XG5pbXBvcnQgeyBqb2luIH0gZnJvbSBcIm5vZGU6cGF0aFwiO1xuLy8g5bCd6K+V5Yqg5LiKIC5qcyDmmL7lvI/lkI7nvIBcbmltcG9ydCB7IGZpeFBhdGhGb3JBc2FyVW5wYWNrIH0gZnJvbSBcImVsZWN0cm9uLXV0aWwvbm9kZVwiO1xuaW1wb3J0ICogYXMgb3MgZnJvbSBcIm5vZGU6b3NcIjtcbmltcG9ydCBmaW5kSmF2YUhvbWUgZnJvbSBcImZpbmQtamF2YS1ob21lXCI7XG5pbXBvcnQgeyBKYXZhQ2FsbGVyIH0gZnJvbSBcImphdmEtY2FsbGVyXCI7XG52YXIgcGF0aCA9IGpvaW4oX19kaXJuYW1lLCBcInByaW50ZXIuamFyXCIpO1xudmFyIGZpeFBhdGggPSBmaXhQYXRoRm9yQXNhclVucGFjayhwYXRoKTtcbnZhciBqYXZhQXJncyA9IFtcIi1EZmlsZS5lbmNvZGluZz1VVEYtOFwiXTtcbi8vIOino+WGs2xpbnV45LiL5omT5Y2w5py65p2D6ZmQ6Zeu6aKY77yMamFy5by556qX6ZyA6KaB5a6J6KOFbGliYXRrLXdyYXBwZXItamF2YVxuaWYgKG9zLnBsYXRmb3JtKCkgPT0gXCJsaW51eFwiKSB7XG4gICAgamF2YUFyZ3MucHVzaChcIi1EamF2YXguYWNjZXNzaWJpbGl0eS5hc3Npc3RpdmVfdGVjaG5vbG9naWVzPScgJ1wiKTtcbn1cbnZhciBQYXJhbWV0ZXIgPSBcIlwiLmNvbmNhdChmaXhQYXRoKTtcbi8qKlxuICog5qC45b+D77ya5bCB6KOF5omL5YqoIFByb21pc2Ug6YC76L6RXG4gKiDop6PlhrMgVFMg6aG25bGCIGF3YWl0IOmZkOWItlxuICovXG5mdW5jdGlvbiBpbml0SmF2YSgpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBpbnN0YW5jZSwgaG9tZVBhdGgsIGNhbGxlck9wdGlvbnMsIGV4ZU5hbWU7XG4gICAgICAgIHJldHVybiBfX2dlbmVyYXRvcih0aGlzLCBmdW5jdGlvbiAoX2EpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoX2EubGFiZWwpIHtcbiAgICAgICAgICAgICAgICBjYXNlIDA6IHJldHVybiBbNCAvKnlpZWxkKi8sIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbmRKYXZhSG9tZSh7IGFsbG93SnJlOiB0cnVlIH0sIGZ1bmN0aW9uIChlcnIsIGhvbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyIHx8ICFob21lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnIgfHwgbmV3IEVycm9yKFwiSmF2YSBIb21lIG5vdCBmb3VuZFwiKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGhvbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9KV07XG4gICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICBob21lUGF0aCA9IF9hLnNlbnQoKTtcbiAgICAgICAgICAgICAgICAgICAgY2FsbGVyT3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGphcjogUGFyYW1ldGVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWFpbkNsYXNzOiBcImNvbS50ay5seWluLlByaW50ZXJzXCIsIC8vIOehruS/neWOu+aOieS6huacq+WwvumAl+WPt1xuICAgICAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbEphdmFBcmdzOiBqYXZhQXJncyxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGhvbWVQYXRoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBleGVOYW1lID0gb3MucGxhdGZvcm0oKSA9PT0gXCJ3aW4zMlwiID8gXCJqYXZhLmV4ZVwiIDogXCJqYXZhXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyDmiYvliqjmjIflrprmiafooYzot6/lvoRcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxlck9wdGlvbnMuamF2YUV4ZWN1dGFibGUgPSBmaXhQYXRoRm9yQXNhclVucGFjayhqb2luKGhvbWVQYXRoLCBcImJpblwiLCBleGVOYW1lKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2UgPSBuZXcgSmF2YUNhbGxlcihjYWxsZXJPcHRpb25zKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFsyIC8qcmV0dXJuKi8sIGluc3RhbmNlXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSk7XG59XG5leHBvcnQgdmFyIHJ1biA9IGZ1bmN0aW9uIChwcmludGVyKSB7IHJldHVybiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24gKCkge1xuICAgIHZhciBhcmdzLCBwcmludGVyTmFtZSwgamF2YSwgX2EsIHN0YXR1cywgc3Rkb3V0LCBzdGRlcnI7XG4gICAgcmV0dXJuIF9fZ2VuZXJhdG9yKHRoaXMsIGZ1bmN0aW9uIChfYikge1xuICAgICAgICBzd2l0Y2ggKF9iLmxhYmVsKSB7XG4gICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgYXJncyA9IFtdO1xuICAgICAgICAgICAgICAgIGFyZ3MucHVzaChwcmludGVyLmFyZyk7XG4gICAgICAgICAgICAgICAgcHJpbnRlck5hbWUgPSBwcmludGVyLnByaW50ZXJOYW1lO1xuICAgICAgICAgICAgICAgIGlmIChwcmludGVyTmFtZSkge1xuICAgICAgICAgICAgICAgICAgICBhcmdzLnB1c2gocHJpbnRlck5hbWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gWzQgLyp5aWVsZCovLCBpbml0SmF2YSgpXTtcbiAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICBqYXZhID0gX2Iuc2VudCgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBbNCAvKnlpZWxkKi8sIGphdmEucnVuKGFyZ3MpXTtcbiAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICBfYSA9IF9iLnNlbnQoKSwgc3RhdHVzID0gX2Euc3RhdHVzLCBzdGRvdXQgPSBfYS5zdGRvdXQsIHN0ZGVyciA9IF9hLnN0ZGVycjtcbiAgICAgICAgICAgICAgICByZXR1cm4gWzIgLypyZXR1cm4qLywgc3Rkb3V0ID8gc3Rkb3V0LnRyaW0oKSA6IFwie31cIl07XG4gICAgICAgIH1cbiAgICB9KTtcbn0pOyB9O1xuZXhwb3J0IHZhciBwcmludFJ1biA9IGZ1bmN0aW9uIChwcmludGVyLCBwcmludCkgeyByZXR1cm4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgamF2YSwgYmFzZTY0U3RyLCBfYSwgc3RhdHVzLCBzdGRvdXQsIHN0ZGVycjtcbiAgICByZXR1cm4gX19nZW5lcmF0b3IodGhpcywgZnVuY3Rpb24gKF9iKSB7XG4gICAgICAgIHN3aXRjaCAoX2IubGFiZWwpIHtcbiAgICAgICAgICAgIGNhc2UgMDogcmV0dXJuIFs0IC8qeWllbGQqLywgaW5pdEphdmEoKV07XG4gICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgamF2YSA9IF9iLnNlbnQoKTtcbiAgICAgICAgICAgICAgICBiYXNlNjRTdHIgPSBCdWZmZXIuZnJvbShKU09OLnN0cmluZ2lmeShwcmludCkudHJpbSgpKS50b1N0cmluZyhcImJhc2U2NFwiKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gWzQgLyp5aWVsZCovLCBqYXZhLnJ1bihbcHJpbnRlci5hcmcsIGJhc2U2NFN0cl0pXTtcbiAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICBfYSA9IF9iLnNlbnQoKSwgc3RhdHVzID0gX2Euc3RhdHVzLCBzdGRvdXQgPSBfYS5zdGRvdXQsIHN0ZGVyciA9IF9hLnN0ZGVycjtcbiAgICAgICAgICAgICAgICByZXR1cm4gWzIgLypyZXR1cm4qL107XG4gICAgICAgIH1cbiAgICB9KTtcbn0pOyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYW1GMllTMTFkR2xzTG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lMaTR2TGk0dmMzSmpMM1YwYVd4ekwycGhkbUV0ZFhScGJDNTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdRVUZCUVN4UFFVRlBMRVZCUVVNc1NVRkJTU3hGUVVGRExFMUJRVTBzVjBGQlZ5eERRVUZETzBGQlJ5OUNMR2RDUVVGblFqdEJRVU5vUWl4UFFVRlBMRVZCUVVNc2IwSkJRVzlDTEVWQlFVTXNUVUZCVFN4dlFrRkJiMElzUTBGQlF6dEJRVU40UkN4UFFVRlBMRXRCUVVzc1JVRkJSU3hOUVVGTkxGTkJRVk1zUTBGQlF6dEJRVU01UWl4UFFVRlBMRmxCUVZrc1RVRkJUU3huUWtGQlowSXNRMEZCUXp0QlFVTXhReXhQUVVGUExFVkJRVU1zVlVGQlZTeEZRVUZ2UWl4TlFVRk5MR0ZCUVdFc1EwRkJRenRCUVVjeFJDeEpRVUZKTEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1UwRkJVeXhGUVVGRkxHRkJRV0VzUTBGQlF5eERRVUZETzBGQlF6RkRMRWxCUVVrc1QwRkJUeXhIUVVGSExHOUNRVUZ2UWl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8wRkJRM3BETEVsQlFVMHNVVUZCVVN4SFFVRkhMRU5CUVVNc2RVSkJRWFZDTEVOQlFVTXNRMEZCUXp0QlFVTXpReXdyUTBGQkswTTdRVUZETDBNc1NVRkJTU3hGUVVGRkxFTkJRVU1zVVVGQlVTeEZRVUZGTEVsQlFVa3NUMEZCVHl4RlFVRkZMRU5CUVVNN1NVRkRNMElzVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXl4clJFRkJhMFFzUTBGQlF5eERRVUZETzBGQlEzUkZMRU5CUVVNN1FVRkZSQ3hKUVVGTkxGTkJRVk1zUjBGQlJ5eFZRVUZITEU5QlFVOHNRMEZCUlN4RFFVRkRPMEZCUlM5Q096czdSMEZIUnp0QlFVTklMRk5CUVdVc1VVRkJVVHM3T3pzN2QwSkJSMG9zY1VKQlFVMHNTVUZCU1N4UFFVRlBMRU5CUVZNc1ZVRkJReXhQUVVGUExFVkJRVVVzVFVGQlRUdDNRa0ZEY2tRc1dVRkJXU3hEUVVGRExFVkJRVU1zVVVGQlVTeEZRVUZGTEVsQlFVa3NSVUZCUXl4RlFVRkZMRlZCUVVNc1IwRkJSeXhGUVVGRkxFbEJRVWs3TkVKQlEzSkRMRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTTdaME5CUTJZc1RVRkJUU3hEUVVGRExFZEJRVWNzU1VGQlNTeEpRVUZKTEV0QlFVc3NRMEZCUXl4eFFrRkJjVUlzUTBGQlF5eERRVUZETEVOQlFVTTdORUpCUTNCRUxFTkJRVU03YVVOQlFVMHNRMEZCUXp0blEwRkRTaXhQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdORUpCUTJ4Q0xFTkJRVU03ZDBKQlEwd3NRMEZCUXl4RFFVRkRMRU5CUVVNN2IwSkJRMUFzUTBGQlF5eERRVUZETEVWQlFVRTdPMjlDUVZKRkxGRkJRVkVzUjBGQlJ5eFRRVkZpTzI5Q1FVZEpMR0ZCUVdFc1IwRkJjMEk3ZDBKQlEzSkRMRWRCUVVjc1JVRkJSU3hUUVVGVE8zZENRVU5rTEZOQlFWTXNSVUZCUlN4elFrRkJjMElzUlVGQlJTeFpRVUZaTzNkQ1FVTXZReXhyUWtGQmEwSXNSVUZCUlN4UlFVRlJPM0ZDUVVNdlFpeERRVUZCTzI5Q1FVVkVMRWxCUVVrc1VVRkJVU3hGUVVGRkxFTkJRVU03ZDBKQlEwd3NUMEZCVHl4SFFVRkhMRVZCUVVVc1EwRkJReXhSUVVGUkxFVkJRVVVzUzBGQlN5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETzNkQ1FVTm9SU3hYUVVGWE8zZENRVU5ZTEdGQlFXRXNRMEZCUXl4alFVRmpMRWRCUVVjc2IwSkJRVzlDTEVOQlF5OURMRWxCUVVrc1EwRkJReXhSUVVGUkxFVkJRVVVzUzBGQlN5eEZRVUZGTEU5QlFVOHNRMEZCUXl4RFFVTnFReXhEUVVGRE8yOUNRVU5PTEVOQlFVTTdiMEpCUTBRc1VVRkJVU3hIUVVGSExFbEJRVWtzVlVGQlZTeERRVUZETEdGQlFXRXNRMEZCUXl4RFFVRkRPMjlDUVVWNlF5eHpRa0ZCVHl4UlFVRlJMRVZCUVVNN096czdRMEZEYmtJN1FVRkZSQ3hOUVVGTkxFTkJRVU1zU1VGQlRTeEhRVUZITEVkQlFVY3NWVUZCVHl4UFFVRm5RanM3T3pzN1owSkJRMmhETEVsQlFVa3NSMEZCWVN4RlFVRkZMRU5CUVVNN1owSkJRekZDTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzJkQ1FVTnFRaXhYUVVGWExFZEJRVWNzVDBGQlR5eERRVUZETEZkQlFWY3NRMEZCUXp0blFrRkRlRU1zU1VGQlNTeFhRVUZYTEVWQlFVVXNRMEZCUXp0dlFrRkRaQ3hKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRPMmRDUVVNelFpeERRVUZETzJkQ1FVTlpMSEZDUVVGTkxGRkJRVkVzUlVGQlJTeEZRVUZCT3p0blFrRkJka0lzU1VGQlNTeEhRVUZITEZOQlFXZENPMmRDUVVOSkxIRkNRVUZOTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVUU3TzJkQ1FVRXZReXhMUVVFeVFpeFRRVUZ2UWl4RlFVRTVReXhOUVVGTkxGbEJRVUVzUlVGQlJTeE5RVUZOTEZsQlFVRXNSVUZCUlN4TlFVRk5MRmxCUVVFN1owSkJRemRDTEhOQ1FVRlBMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFVkJRVU03T3p0TFFVTjRReXhEUVVGRE8wRkJSVVlzVFVGQlRTeERRVUZETEVsQlFVMHNVVUZCVVN4SFFVRkhMRlZCUTNCQ0xFOUJRV2RDTEVWQlEyaENMRXRCUVcxQ096czdPMjlDUVVWT0xIRkNRVUZOTEZGQlFWRXNSVUZCUlN4RlFVRkJPenRuUWtGQmRrSXNTVUZCU1N4SFFVRkhMRk5CUVdkQ08yZENRVU4yUWl4VFFVRlRMRWRCUVVjc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETEVOQlFVTXNVVUZCVVN4RFFVTm9SU3hSUVVGUkxFTkJRMWdzUTBGQlF6dG5Ra0ZESzBJc2NVSkJRVTBzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhIUVVGSExFVkJRVVVzVTBGQlV5eERRVUZETEVOQlFVTXNSVUZCUVRzN1owSkJRVzVGTEV0QlFUSkNMRk5CUVhkRExFVkJRV3hGTEUxQlFVMHNXVUZCUVN4RlFVRkZMRTFCUVUwc1dVRkJRU3hGUVVGRkxFMUJRVTBzV1VGQlFUczdPenRMUVVOb1F5eERRVUZESW4wPSIsInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xudmFyIF9fZ2VuZXJhdG9yID0gKHRoaXMgJiYgdGhpcy5fX2dlbmVyYXRvcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIGJvZHkpIHtcbiAgICB2YXIgXyA9IHsgbGFiZWw6IDAsIHNlbnQ6IGZ1bmN0aW9uKCkgeyBpZiAodFswXSAmIDEpIHRocm93IHRbMV07IHJldHVybiB0WzFdOyB9LCB0cnlzOiBbXSwgb3BzOiBbXSB9LCBmLCB5LCB0LCBnID0gT2JqZWN0LmNyZWF0ZSgodHlwZW9mIEl0ZXJhdG9yID09PSBcImZ1bmN0aW9uXCIgPyBJdGVyYXRvciA6IE9iamVjdCkucHJvdG90eXBlKTtcbiAgICByZXR1cm4gZy5uZXh0ID0gdmVyYigwKSwgZ1tcInRocm93XCJdID0gdmVyYigxKSwgZ1tcInJldHVyblwiXSA9IHZlcmIoMiksIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiAoZ1tTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzOyB9KSwgZztcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgcmV0dXJuIGZ1bmN0aW9uICh2KSB7IHJldHVybiBzdGVwKFtuLCB2XSk7IH07IH1cbiAgICBmdW5jdGlvbiBzdGVwKG9wKSB7XG4gICAgICAgIGlmIChmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcbiAgICAgICAgd2hpbGUgKGcgJiYgKGcgPSAwLCBvcFswXSAmJiAoXyA9IDApKSwgXykgdHJ5IHtcbiAgICAgICAgICAgIGlmIChmID0gMSwgeSAmJiAodCA9IG9wWzBdICYgMiA/IHlbXCJyZXR1cm5cIl0gOiBvcFswXSA/IHlbXCJ0aHJvd1wiXSB8fCAoKHQgPSB5W1wicmV0dXJuXCJdKSAmJiB0LmNhbGwoeSksIDApIDogeS5uZXh0KSAmJiAhKHQgPSB0LmNhbGwoeSwgb3BbMV0pKS5kb25lKSByZXR1cm4gdDtcbiAgICAgICAgICAgIGlmICh5ID0gMCwgdCkgb3AgPSBbb3BbMF0gJiAyLCB0LnZhbHVlXTtcbiAgICAgICAgICAgIHN3aXRjaCAob3BbMF0pIHtcbiAgICAgICAgICAgICAgICBjYXNlIDA6IGNhc2UgMTogdCA9IG9wOyBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDQ6IF8ubGFiZWwrKzsgcmV0dXJuIHsgdmFsdWU6IG9wWzFdLCBkb25lOiBmYWxzZSB9O1xuICAgICAgICAgICAgICAgIGNhc2UgNTogXy5sYWJlbCsrOyB5ID0gb3BbMV07IG9wID0gWzBdOyBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjYXNlIDc6IG9wID0gXy5vcHMucG9wKCk7IF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEodCA9IF8udHJ5cywgdCA9IHQubGVuZ3RoID4gMCAmJiB0W3QubGVuZ3RoIC0gMV0pICYmIChvcFswXSA9PT0gNiB8fCBvcFswXSA9PT0gMikpIHsgXyA9IDA7IGNvbnRpbnVlOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gMyAmJiAoIXQgfHwgKG9wWzFdID4gdFswXSAmJiBvcFsxXSA8IHRbM10pKSkgeyBfLmxhYmVsID0gb3BbMV07IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gNiAmJiBfLmxhYmVsIDwgdFsxXSkgeyBfLmxhYmVsID0gdFsxXTsgdCA9IG9wOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodCAmJiBfLmxhYmVsIDwgdFsyXSkgeyBfLmxhYmVsID0gdFsyXTsgXy5vcHMucHVzaChvcCk7IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh0WzJdKSBfLm9wcy5wb3AoKTtcbiAgICAgICAgICAgICAgICAgICAgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9wID0gYm9keS5jYWxsKHRoaXNBcmcsIF8pO1xuICAgICAgICB9IGNhdGNoIChlKSB7IG9wID0gWzYsIGVdOyB5ID0gMDsgfSBmaW5hbGx5IHsgZiA9IHQgPSAwOyB9XG4gICAgICAgIGlmIChvcFswXSAmIDUpIHRocm93IG9wWzFdOyByZXR1cm4geyB2YWx1ZTogb3BbMF0gPyBvcFsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9O1xuICAgIH1cbn07XG4vLyDnm7TmjqXmiZPljbBcbmltcG9ydCBmcyBmcm9tIFwiZnNcIjtcbmltcG9ydCB7IFByaW50ZXJBY3Rpb25zIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgeyBwcmludFJ1biB9IGZyb20gXCIuLi91dGlscy9qYXZhLXV0aWxcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHByaW50KHByaW50ZXIpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBwZGY7XG4gICAgICAgIHJldHVybiBfX2dlbmVyYXRvcih0aGlzLCBmdW5jdGlvbiAoX2EpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoX2EubGFiZWwpIHtcbiAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgIHBkZiA9IHByaW50ZXIucGRmO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXBkZilcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IFwiTm8gUERGIHNwZWNpZmllZFwiO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWZzLmV4aXN0c1N5bmMocGRmKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IFwiTm8gc3VjaCBmaWxlXCI7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbNCAvKnlpZWxkKi8sIHByaW50UnVuKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmc6IFByaW50ZXJBY3Rpb25zLlBSSU5ULFxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgcHJpbnRlcildO1xuICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgX2Euc2VudCgpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzIgLypyZXR1cm4qL107XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0pO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pY0hKcGJuUXVhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lJdUxpOHVMaTl6Y21NdmNISnBiblF2Y0hKcGJuUXVkSE1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJanM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPMEZCUVVFc1QwRkJUenRCUVVOUUxFOUJRVThzUlVGQlJTeE5RVUZOTEVsQlFVa3NRMEZCUXp0QlFVTndRaXhQUVVGUExFVkJRVU1zWTBGQll5eEZRVUZsTEUxQlFVMHNWVUZCVlN4RFFVRkRPMEZCUTNSRUxFOUJRVThzUlVGQlF5eFJRVUZSTEVWQlFVTXNUVUZCVFN4dlFrRkJiMElzUTBGQlF6dEJRVVUxUXl4TlFVRk5MRU5CUVVNc1QwRkJUeXhWUVVGblFpeExRVUZMTEVOQlFVTXNUMEZCY1VJN096czdPenR2UWtGREwwTXNSMEZCUnl4SFFVRkhMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU03YjBKQlEzaENMRWxCUVVrc1EwRkJReXhIUVVGSE8zZENRVUZGTEUxQlFVMHNhMEpCUVd0Q0xFTkJRVU03YjBKQlEyNURMRWxCUVVrc1EwRkJReXhGUVVGRkxFTkJRVU1zVlVGQlZTeERRVUZETEVkQlFVY3NRMEZCUXp0M1FrRkJSU3hOUVVGTkxHTkJRV01zUTBGQlF6dHZRa0ZET1VNc2NVSkJRVTBzVVVGQlVTeERRVU5XT3pSQ1FVTkJMRWRCUVVjc1JVRkJSU3hqUVVGakxFTkJRVU1zUzBGQlN6dDVRa0ZEZUVJc1JVRkRSQ3hQUVVGUExFTkJRMVlzUlVGQlFUczdiMEpCVEVRc1UwRkxReXhEUVVGRE96czdPenREUVVOTUluMD0iLCJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbnZhciBfX2dlbmVyYXRvciA9ICh0aGlzICYmIHRoaXMuX19nZW5lcmF0b3IpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBib2R5KSB7XG4gICAgdmFyIF8gPSB7IGxhYmVsOiAwLCBzZW50OiBmdW5jdGlvbigpIHsgaWYgKHRbMF0gJiAxKSB0aHJvdyB0WzFdOyByZXR1cm4gdFsxXTsgfSwgdHJ5czogW10sIG9wczogW10gfSwgZiwgeSwgdCwgZyA9IE9iamVjdC5jcmVhdGUoKHR5cGVvZiBJdGVyYXRvciA9PT0gXCJmdW5jdGlvblwiID8gSXRlcmF0b3IgOiBPYmplY3QpLnByb3RvdHlwZSk7XG4gICAgcmV0dXJuIGcubmV4dCA9IHZlcmIoMCksIGdbXCJ0aHJvd1wiXSA9IHZlcmIoMSksIGdbXCJyZXR1cm5cIl0gPSB2ZXJiKDIpLCB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgKGdbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gdGhpczsgfSksIGc7XG4gICAgZnVuY3Rpb24gdmVyYihuKSB7IHJldHVybiBmdW5jdGlvbiAodikgeyByZXR1cm4gc3RlcChbbiwgdl0pOyB9OyB9XG4gICAgZnVuY3Rpb24gc3RlcChvcCkge1xuICAgICAgICBpZiAoZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7XG4gICAgICAgIHdoaWxlIChnICYmIChnID0gMCwgb3BbMF0gJiYgKF8gPSAwKSksIF8pIHRyeSB7XG4gICAgICAgICAgICBpZiAoZiA9IDEsIHkgJiYgKHQgPSBvcFswXSAmIDIgPyB5W1wicmV0dXJuXCJdIDogb3BbMF0gPyB5W1widGhyb3dcIl0gfHwgKCh0ID0geVtcInJldHVyblwiXSkgJiYgdC5jYWxsKHkpLCAwKSA6IHkubmV4dCkgJiYgISh0ID0gdC5jYWxsKHksIG9wWzFdKSkuZG9uZSkgcmV0dXJuIHQ7XG4gICAgICAgICAgICBpZiAoeSA9IDAsIHQpIG9wID0gW29wWzBdICYgMiwgdC52YWx1ZV07XG4gICAgICAgICAgICBzd2l0Y2ggKG9wWzBdKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAwOiBjYXNlIDE6IHQgPSBvcDsgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSA0OiBfLmxhYmVsKys7IHJldHVybiB7IHZhbHVlOiBvcFsxXSwgZG9uZTogZmFsc2UgfTtcbiAgICAgICAgICAgICAgICBjYXNlIDU6IF8ubGFiZWwrKzsgeSA9IG9wWzFdOyBvcCA9IFswXTsgY29udGludWU7XG4gICAgICAgICAgICAgICAgY2FzZSA3OiBvcCA9IF8ub3BzLnBvcCgpOyBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIGlmICghKHQgPSBfLnRyeXMsIHQgPSB0Lmxlbmd0aCA+IDAgJiYgdFt0Lmxlbmd0aCAtIDFdKSAmJiAob3BbMF0gPT09IDYgfHwgb3BbMF0gPT09IDIpKSB7IF8gPSAwOyBjb250aW51ZTsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDMgJiYgKCF0IHx8IChvcFsxXSA+IHRbMF0gJiYgb3BbMV0gPCB0WzNdKSkpIHsgXy5sYWJlbCA9IG9wWzFdOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDYgJiYgXy5sYWJlbCA8IHRbMV0pIHsgXy5sYWJlbCA9IHRbMV07IHQgPSBvcDsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHQgJiYgXy5sYWJlbCA8IHRbMl0pIHsgXy5sYWJlbCA9IHRbMl07IF8ub3BzLnB1c2gob3ApOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodFsyXSkgXy5vcHMucG9wKCk7XG4gICAgICAgICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvcCA9IGJvZHkuY2FsbCh0aGlzQXJnLCBfKTtcbiAgICAgICAgfSBjYXRjaCAoZSkgeyBvcCA9IFs2LCBlXTsgeSA9IDA7IH0gZmluYWxseSB7IGYgPSB0ID0gMDsgfVxuICAgICAgICBpZiAob3BbMF0gJiA1KSB0aHJvdyBvcFsxXTsgcmV0dXJuIHsgdmFsdWU6IG9wWzBdID8gb3BbMV0gOiB2b2lkIDAsIGRvbmU6IHRydWUgfTtcbiAgICB9XG59O1xuaW1wb3J0IHsgUHJpbnRlckFjdGlvbnMgfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7IHJ1biB9IGZyb20gXCIuLi91dGlscy9qYXZhLXV0aWxcIjtcbmZ1bmN0aW9uIGdldFByaW50ZXJzKCkge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHJlc3VsdCwgZXJyb3JfMTtcbiAgICAgICAgcmV0dXJuIF9fZ2VuZXJhdG9yKHRoaXMsIGZ1bmN0aW9uIChfYSkge1xuICAgICAgICAgICAgc3dpdGNoIChfYS5sYWJlbCkge1xuICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgX2EudHJ5cy5wdXNoKFswLCAyLCAsIDNdKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFs0IC8qeWllbGQqLywgcnVuKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmc6IFByaW50ZXJBY3Rpb25zLlBSSU5URVJTLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSldO1xuICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gX2Euc2VudCgpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzIgLypyZXR1cm4qLywgSlNPTi5wYXJzZShyZXN1bHQpXTtcbiAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgIGVycm9yXzEgPSBfYS5zZW50KCk7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycm9yXzE7XG4gICAgICAgICAgICAgICAgY2FzZSAzOiByZXR1cm4gWzIgLypyZXR1cm4qL107XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0pO1xufVxuZXhwb3J0IGRlZmF1bHQgZ2V0UHJpbnRlcnM7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2laMlYwTFhCeWFXNTBaWEp6TG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lMaTR2TGk0dmMzSmpMMmRsZEMxd2NtbHVkR1Z5Y3k5blpYUXRjSEpwYm5SbGNuTXVkSE1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJanM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPMEZCUVVFc1QwRkJUeXhGUVVGVkxHTkJRV01zUlVGQlF5eE5RVUZOTEZWQlFWVXNRMEZCUXp0QlFVTnFSQ3hQUVVGUExFVkJRVU1zUjBGQlJ5eEZRVUZETEUxQlFVMHNiMEpCUVc5Q0xFTkJRVU03UVVGRmRrTXNVMEZCWlN4WFFVRlhPenM3T3pzN08yOUNRVVZVTEhGQ1FVRk5MRWRCUVVjc1EwRkJRenMwUWtGRGNrSXNSMEZCUnl4RlFVRkZMR05CUVdNc1EwRkJReXhSUVVGUk8zbENRVU0zUWl4RFFVRkRMRVZCUVVFN08yOUNRVVpGTEUxQlFVMHNSMEZCUnl4VFFVVllPMjlDUVVOR0xITkNRVUZQTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVGRExFVkJRVU03T3p0dlFrRkZNVUlzVFVGQlRTeFBRVUZMTEVOQlFVTTdPenM3TzBOQlJXWTdRVUZGUkN4bFFVRmxMRmRCUVZjc1EwRkJReUo5IiwidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG52YXIgX19nZW5lcmF0b3IgPSAodGhpcyAmJiB0aGlzLl9fZ2VuZXJhdG9yKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgYm9keSkge1xuICAgIHZhciBfID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7IGlmICh0WzBdICYgMSkgdGhyb3cgdFsxXTsgcmV0dXJuIHRbMV07IH0sIHRyeXM6IFtdLCBvcHM6IFtdIH0sIGYsIHksIHQsIGcgPSBPYmplY3QuY3JlYXRlKCh0eXBlb2YgSXRlcmF0b3IgPT09IFwiZnVuY3Rpb25cIiA/IEl0ZXJhdG9yIDogT2JqZWN0KS5wcm90b3R5cGUpO1xuICAgIHJldHVybiBnLm5leHQgPSB2ZXJiKDApLCBnW1widGhyb3dcIl0gPSB2ZXJiKDEpLCBnW1wicmV0dXJuXCJdID0gdmVyYigyKSwgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIChnW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbigpIHsgcmV0dXJuIHRoaXM7IH0pLCBnO1xuICAgIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxuICAgIGZ1bmN0aW9uIHN0ZXAob3ApIHtcbiAgICAgICAgaWYgKGYpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuXCIpO1xuICAgICAgICB3aGlsZSAoZyAmJiAoZyA9IDAsIG9wWzBdICYmIChfID0gMCkpLCBfKSB0cnkge1xuICAgICAgICAgICAgaWYgKGYgPSAxLCB5ICYmICh0ID0gb3BbMF0gJiAyID8geVtcInJldHVyblwiXSA6IG9wWzBdID8geVtcInRocm93XCJdIHx8ICgodCA9IHlbXCJyZXR1cm5cIl0pICYmIHQuY2FsbCh5KSwgMCkgOiB5Lm5leHQpICYmICEodCA9IHQuY2FsbCh5LCBvcFsxXSkpLmRvbmUpIHJldHVybiB0O1xuICAgICAgICAgICAgaWYgKHkgPSAwLCB0KSBvcCA9IFtvcFswXSAmIDIsIHQudmFsdWVdO1xuICAgICAgICAgICAgc3dpdGNoIChvcFswXSkge1xuICAgICAgICAgICAgICAgIGNhc2UgMDogY2FzZSAxOiB0ID0gb3A7IGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgNDogXy5sYWJlbCsrOyByZXR1cm4geyB2YWx1ZTogb3BbMV0sIGRvbmU6IGZhbHNlIH07XG4gICAgICAgICAgICAgICAgY2FzZSA1OiBfLmxhYmVsKys7IHkgPSBvcFsxXTsgb3AgPSBbMF07IGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGNhc2UgNzogb3AgPSBfLm9wcy5wb3AoKTsgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBpZiAoISh0ID0gXy50cnlzLCB0ID0gdC5sZW5ndGggPiAwICYmIHRbdC5sZW5ndGggLSAxXSkgJiYgKG9wWzBdID09PSA2IHx8IG9wWzBdID09PSAyKSkgeyBfID0gMDsgY29udGludWU7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSAzICYmICghdCB8fCAob3BbMV0gPiB0WzBdICYmIG9wWzFdIDwgdFszXSkpKSB7IF8ubGFiZWwgPSBvcFsxXTsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSA2ICYmIF8ubGFiZWwgPCB0WzFdKSB7IF8ubGFiZWwgPSB0WzFdOyB0ID0gb3A7IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh0ICYmIF8ubGFiZWwgPCB0WzJdKSB7IF8ubGFiZWwgPSB0WzJdOyBfLm9wcy5wdXNoKG9wKTsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRbMl0pIF8ub3BzLnBvcCgpO1xuICAgICAgICAgICAgICAgICAgICBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3AgPSBib2R5LmNhbGwodGhpc0FyZywgXyk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHsgb3AgPSBbNiwgZV07IHkgPSAwOyB9IGZpbmFsbHkgeyBmID0gdCA9IDA7IH1cbiAgICAgICAgaWYgKG9wWzBdICYgNSkgdGhyb3cgb3BbMV07IHJldHVybiB7IHZhbHVlOiBvcFswXSA/IG9wWzFdIDogdm9pZCAwLCBkb25lOiB0cnVlIH07XG4gICAgfVxufTtcbmltcG9ydCB7IFByaW50ZXJBY3Rpb25zIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgeyBydW4gfSBmcm9tIFwiLi4vdXRpbHMvamF2YS11dGlsXCI7XG5mdW5jdGlvbiBnZXREZWZhdWx0UHJpbnRlcigpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciByZXN1bHQsIGVycm9yXzE7XG4gICAgICAgIHJldHVybiBfX2dlbmVyYXRvcih0aGlzLCBmdW5jdGlvbiAoX2EpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoX2EubGFiZWwpIHtcbiAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgIF9hLnRyeXMucHVzaChbMCwgMiwgLCAzXSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbNCAvKnlpZWxkKi8sIHJ1bih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnOiBQcmludGVyQWN0aW9ucy5ERUZBVUxULFxuICAgICAgICAgICAgICAgICAgICAgICAgfSldO1xuICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gX2Euc2VudCgpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzIgLypyZXR1cm4qLywgSlNPTi5wYXJzZShyZXN1bHQpXTtcbiAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgIGVycm9yXzEgPSBfYS5zZW50KCk7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycm9yXzE7XG4gICAgICAgICAgICAgICAgY2FzZSAzOiByZXR1cm4gWzIgLypyZXR1cm4qL107XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0pO1xufVxuZXhwb3J0IGRlZmF1bHQgZ2V0RGVmYXVsdFByaW50ZXI7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2laMlYwTFdSbFptRjFiSFF0Y0hKcGJuUmxjaTVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYklpNHVMeTR1TDNOeVl5OW5aWFF0WkdWbVlYVnNkQzF3Y21sdWRHVnlMMmRsZEMxa1pXWmhkV3gwTFhCeWFXNTBaWEl1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWpzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3TzBGQlFVRXNUMEZCVHl4RlFVRlZMR05CUVdNc1JVRkJReXhOUVVGTkxGVkJRVlVzUTBGQlF6dEJRVU5xUkN4UFFVRlBMRVZCUVVNc1IwRkJSeXhGUVVGRExFMUJRVTBzYjBKQlFXOUNMRU5CUVVNN1FVRkZka01zVTBGQlpTeHBRa0ZCYVVJN096czdPenM3YjBKQlJXWXNjVUpCUVUwc1IwRkJSeXhEUVVGRE96UkNRVU55UWl4SFFVRkhMRVZCUVVVc1kwRkJZeXhEUVVGRExFOUJRVTg3ZVVKQlF6VkNMRU5CUVVNc1JVRkJRVHM3YjBKQlJrVXNUVUZCVFN4SFFVRkhMRk5CUlZnN2IwSkJRMFlzYzBKQlFVOHNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlF6czdPMjlDUVVVeFFpeE5RVUZOTEU5QlFVc3NRMEZCUXpzN096czdRMEZGWmp0QlFVVkVMR1ZCUVdVc2FVSkJRV2xDTEVOQlFVTWlmUT09IiwidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG52YXIgX19nZW5lcmF0b3IgPSAodGhpcyAmJiB0aGlzLl9fZ2VuZXJhdG9yKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgYm9keSkge1xuICAgIHZhciBfID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7IGlmICh0WzBdICYgMSkgdGhyb3cgdFsxXTsgcmV0dXJuIHRbMV07IH0sIHRyeXM6IFtdLCBvcHM6IFtdIH0sIGYsIHksIHQsIGcgPSBPYmplY3QuY3JlYXRlKCh0eXBlb2YgSXRlcmF0b3IgPT09IFwiZnVuY3Rpb25cIiA/IEl0ZXJhdG9yIDogT2JqZWN0KS5wcm90b3R5cGUpO1xuICAgIHJldHVybiBnLm5leHQgPSB2ZXJiKDApLCBnW1widGhyb3dcIl0gPSB2ZXJiKDEpLCBnW1wicmV0dXJuXCJdID0gdmVyYigyKSwgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIChnW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbigpIHsgcmV0dXJuIHRoaXM7IH0pLCBnO1xuICAgIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxuICAgIGZ1bmN0aW9uIHN0ZXAob3ApIHtcbiAgICAgICAgaWYgKGYpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuXCIpO1xuICAgICAgICB3aGlsZSAoZyAmJiAoZyA9IDAsIG9wWzBdICYmIChfID0gMCkpLCBfKSB0cnkge1xuICAgICAgICAgICAgaWYgKGYgPSAxLCB5ICYmICh0ID0gb3BbMF0gJiAyID8geVtcInJldHVyblwiXSA6IG9wWzBdID8geVtcInRocm93XCJdIHx8ICgodCA9IHlbXCJyZXR1cm5cIl0pICYmIHQuY2FsbCh5KSwgMCkgOiB5Lm5leHQpICYmICEodCA9IHQuY2FsbCh5LCBvcFsxXSkpLmRvbmUpIHJldHVybiB0O1xuICAgICAgICAgICAgaWYgKHkgPSAwLCB0KSBvcCA9IFtvcFswXSAmIDIsIHQudmFsdWVdO1xuICAgICAgICAgICAgc3dpdGNoIChvcFswXSkge1xuICAgICAgICAgICAgICAgIGNhc2UgMDogY2FzZSAxOiB0ID0gb3A7IGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgNDogXy5sYWJlbCsrOyByZXR1cm4geyB2YWx1ZTogb3BbMV0sIGRvbmU6IGZhbHNlIH07XG4gICAgICAgICAgICAgICAgY2FzZSA1OiBfLmxhYmVsKys7IHkgPSBvcFsxXTsgb3AgPSBbMF07IGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGNhc2UgNzogb3AgPSBfLm9wcy5wb3AoKTsgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBpZiAoISh0ID0gXy50cnlzLCB0ID0gdC5sZW5ndGggPiAwICYmIHRbdC5sZW5ndGggLSAxXSkgJiYgKG9wWzBdID09PSA2IHx8IG9wWzBdID09PSAyKSkgeyBfID0gMDsgY29udGludWU7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSAzICYmICghdCB8fCAob3BbMV0gPiB0WzBdICYmIG9wWzFdIDwgdFszXSkpKSB7IF8ubGFiZWwgPSBvcFsxXTsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSA2ICYmIF8ubGFiZWwgPCB0WzFdKSB7IF8ubGFiZWwgPSB0WzFdOyB0ID0gb3A7IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh0ICYmIF8ubGFiZWwgPCB0WzJdKSB7IF8ubGFiZWwgPSB0WzJdOyBfLm9wcy5wdXNoKG9wKTsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRbMl0pIF8ub3BzLnBvcCgpO1xuICAgICAgICAgICAgICAgICAgICBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3AgPSBib2R5LmNhbGwodGhpc0FyZywgXyk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHsgb3AgPSBbNiwgZV07IHkgPSAwOyB9IGZpbmFsbHkgeyBmID0gdCA9IDA7IH1cbiAgICAgICAgaWYgKG9wWzBdICYgNSkgdGhyb3cgb3BbMV07IHJldHVybiB7IHZhbHVlOiBvcFswXSA/IG9wWzFdIDogdm9pZCAwLCBkb25lOiB0cnVlIH07XG4gICAgfVxufTtcbnZhciBfX3NwcmVhZEFycmF5ID0gKHRoaXMgJiYgdGhpcy5fX3NwcmVhZEFycmF5KSB8fCBmdW5jdGlvbiAodG8sIGZyb20sIHBhY2spIHtcbiAgICBpZiAocGFjayB8fCBhcmd1bWVudHMubGVuZ3RoID09PSAyKSBmb3IgKHZhciBpID0gMCwgbCA9IGZyb20ubGVuZ3RoLCBhcjsgaSA8IGw7IGkrKykge1xuICAgICAgICBpZiAoYXIgfHwgIShpIGluIGZyb20pKSB7XG4gICAgICAgICAgICBpZiAoIWFyKSBhciA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGZyb20sIDAsIGkpO1xuICAgICAgICAgICAgYXJbaV0gPSBmcm9tW2ldO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0by5jb25jYXQoYXIgfHwgQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZnJvbSkpO1xufTtcbmltcG9ydCB7IFByaW50ZXJBY3Rpb25zLCB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgcnVuIH0gZnJvbSBcIi4uL3V0aWxzL2phdmEtdXRpbFwiO1xuLyoqXG4gKiDojrflj5bmjIflrprmiZPljbDmnLrmiYDmlK/mjIHnmoTnurjlvKDlpKflsI8s5aaC5p6c5oOz6I635Y+W6buY6K6k5omT5Y2w5py657q45byg5aSn5bCPIG9wdGlvbnMucHJpbnRlciDor7fkvb/nlKjnqbrlrZfnrKZcbiAqIEdldCB0aGUgcGFwZXIgc2l6ZSBzdXBwb3J0ZWQgYnkgdGhlIHNwZWNpZmllZCBwcmludGVyLCBpZiB5b3Ugd2FudCB0byBnZXQgdGhlIGRlZmF1bHQgcHJpbnRlciBwYXBlciBzaXplIG9wdGlvbnMucHJpbnRlciBQbGVhc2UgdXNlIGEgYmxhbmsgY2hhcmFjdGVyXG4gKi9cbmV4cG9ydCB2YXIgZ2V0UGFwZXJTaXplSW5mbyA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgYXJnc18xID0gW107XG4gICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHtcbiAgICAgICAgYXJnc18xW19pXSA9IGFyZ3VtZW50c1tfaV07XG4gICAgfVxuICAgIHJldHVybiBfX2F3YWl0ZXIodm9pZCAwLCBfX3NwcmVhZEFycmF5KFtdLCBhcmdzXzEsIHRydWUpLCB2b2lkIDAsIGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIHZhciByZXN1bHQsIGVycm9yXzE7XG4gICAgICAgIGlmIChvcHRpb25zID09PSB2b2lkIDApIHsgb3B0aW9ucyA9IHsgcHJpbnRlcjogXCJcIiB9OyB9XG4gICAgICAgIHJldHVybiBfX2dlbmVyYXRvcih0aGlzLCBmdW5jdGlvbiAoX2EpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoX2EubGFiZWwpIHtcbiAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgIF9hLnRyeXMucHVzaChbMCwgMiwgLCAzXSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbNCAvKnlpZWxkKi8sIHJ1bih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnOiBQcmludGVyQWN0aW9ucy5TSVpFSU5GTyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGVyTmFtZTogb3B0aW9ucy5wcmludGVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSldO1xuICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gX2Euc2VudCgpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzIgLypyZXR1cm4qLywgSlNPTi5wYXJzZShyZXN1bHQpXTtcbiAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgIGVycm9yXzEgPSBfYS5zZW50KCk7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycm9yXzE7XG4gICAgICAgICAgICAgICAgY2FzZSAzOiByZXR1cm4gWzIgLypyZXR1cm4qL107XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0pO1xufTtcbi8qKlxuICog6I635Y+W5omA5pyJ5omT5Y2w5py65omA5pSv5oyB55qE57q45byg5aSn5bCPXG4gKiBHZXQgdGhlIHBhcGVyIHNpemUgc3VwcG9ydGVkIGJ5IGFsbCBwcmludGVyc1xuICogQHJldHVybnMgYWxsIHBhcGVyU2l6ZVxuICovXG5leHBvcnQgdmFyIGdldFBhcGVyU2l6ZUluZm9BbGwgPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGFyZ3NfMSA9IFtdO1xuICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgIGFyZ3NfMVtfaV0gPSBhcmd1bWVudHNbX2ldO1xuICAgIH1cbiAgICByZXR1cm4gX19hd2FpdGVyKHZvaWQgMCwgX19zcHJlYWRBcnJheShbXSwgYXJnc18xLCB0cnVlKSwgdm9pZCAwLCBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICB2YXIgcmVzdWx0LCBlcnJvcl8yO1xuICAgICAgICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7IG9wdGlvbnMgPSB7fTsgfVxuICAgICAgICByZXR1cm4gX19nZW5lcmF0b3IodGhpcywgZnVuY3Rpb24gKF9hKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKF9hLmxhYmVsKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgICAgICBfYS50cnlzLnB1c2goWzAsIDIsICwgM10pO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzQgLyp5aWVsZCovLCBydW4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZzogUHJpbnRlckFjdGlvbnMuU0laRUlORk9TLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSldO1xuICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gX2Euc2VudCgpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzIgLypyZXR1cm4qLywgSlNPTi5wYXJzZShyZXN1bHQpXTtcbiAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgIGVycm9yXzIgPSBfYS5zZW50KCk7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycm9yXzI7XG4gICAgICAgICAgICAgICAgY2FzZSAzOiByZXR1cm4gWzIgLypyZXR1cm4qL107XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0pO1xufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVoyVjBMWEJoY0dWeUxYTnBlbVV0YVc1bWJ5NXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMM055WXk5blpYUXRjR0Z3WlhJdGMybDZaUzluWlhRdGNHRndaWEl0YzJsNlpTMXBibVp2TG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lJN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3p0QlFVRkJMRTlCUVU4c1JVRkJNa01zWTBGQll5eEhRVUZGTEUxQlFVMHNWVUZCVlN4RFFVRkRPMEZCUTI1R0xFOUJRVThzUlVGQlF5eEhRVUZITEVWQlFVTXNUVUZCVFN4dlFrRkJiMElzUTBGQlF6dEJRVVYyUXpzN08wZEJSMGM3UVVGRFNDeE5RVUZOTEVOQlFVTXNTVUZCVFN4blFrRkJaMElzUjBGQlJ6czdPenM3WjBaQlF6VkNMRTlCUVRaRE96dFJRVUUzUXl4M1FrRkJRU3hGUVVGQkxGbEJRV2xETEU5QlFVOHNSVUZCUlN4RlFVRkZMRVZCUVVNN096czdPMjlDUVVkb1F5eHhRa0ZCVFN4SFFVRkhMRU5CUVVNN05FSkJRM0pDTEVkQlFVY3NSVUZCUlN4alFVRmpMRU5CUVVNc1VVRkJVVHMwUWtGRE5VSXNWMEZCVnl4RlFVRkZMRTlCUVU4c1EwRkJReXhQUVVGUE8zbENRVU0zUWl4RFFVRkRMRVZCUVVFN08yOUNRVWhGTEUxQlFVMHNSMEZCUnl4VFFVZFlPMjlDUVVOR0xITkNRVUZQTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVGRExFVkJRVU03T3p0dlFrRkZNVUlzVFVGQlRTeFBRVUZMTEVOQlFVTTdPenM3TzBOQlJXWXNRMEZCUXp0QlFVVkdPenM3TzBkQlNVYzdRVUZEU0N4TlFVRk5MRU5CUVVNc1NVRkJUU3h0UWtGQmJVSXNSMEZCUnpzN096czdaMFpCUXk5Q0xFOUJRVzFFT3p0UlFVRnVSQ3gzUWtGQlFTeEZRVUZCTEZsQlFXMUVPenM3T3p0dlFrRkhkRU1zY1VKQlFVMHNSMEZCUnl4RFFVRkRPelJDUVVOeVFpeEhRVUZITEVWQlFVVXNZMEZCWXl4RFFVRkRMRk5CUVZNN2VVSkJRemxDTEVOQlFVTXNSVUZCUVRzN2IwSkJSa1VzVFVGQlRTeEhRVUZITEZOQlJWZzdiMEpCUTBZc2MwSkJRVThzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4TlFVRk5MRU5CUVVNc1JVRkJRenM3TzI5Q1FVVXhRaXhOUVVGTkxFOUJRVXNzUTBGQlF6czdPenM3UTBGRlppeERRVUZESW4wPSJdLCJuYW1lcyI6WyJyb290IiwiZmFjdG9yeSIsImV4cG9ydHMiLCJtb2R1bGUiLCJkZWZpbmUiLCJhbWQiLCJhIiwiaSIsImdsb2JhbCIsIk1lZGlhU2l6ZU5hbWUiLCJDaHJvbWF0aWNpdHkiLCJTaWRlcyIsIk1lZGlhVHJheSIsIk9yaWVudGF0aW9uUmVxdWVzdGVkIiwiU2NhbGluZyIsIlN1YnNldCIsIlByaW50ZXJBY3Rpb25zIiwiX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fIiwiX193ZWJwYWNrX3JlcXVpcmVfXyIsIm1vZHVsZUlkIiwiY2FjaGVkTW9kdWxlIiwidW5kZWZpbmVkIiwiX193ZWJwYWNrX21vZHVsZXNfXyIsIm4iLCJnZXR0ZXIiLCJfX2VzTW9kdWxlIiwiZCIsImRlZmluaXRpb24iLCJrZXkiLCJvIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJlbnVtZXJhYmxlIiwiZ2V0Iiwib2JqIiwicHJvcCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsInIiLCJTeW1ib2wiLCJ0b1N0cmluZ1RhZyIsInZhbHVlIiwicmVxdWlyZSIsImlzVXNpbmdBc2FyIiwic29tZSIsImFyZ3VtZW50IiwiaW5jbHVkZXMiLCJmaXhQYXRoRm9yQXNhclVucGFjayIsImVsZWN0cm9uIiwicGF0aCIsInJlcGxhY2VBbGwiLCJfX2F3YWl0ZXIiLCJ0aGlzQXJnIiwiX2FyZ3VtZW50cyIsIlAiLCJnZW5lcmF0b3IiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsImZ1bGZpbGxlZCIsInN0ZXAiLCJuZXh0IiwiZSIsInJlamVjdGVkIiwicmVzdWx0IiwiZG9uZSIsInRoZW4iLCJhcHBseSIsIl9fZ2VuZXJhdG9yIiwiYm9keSIsImYiLCJ5IiwidCIsIl8iLCJsYWJlbCIsInNlbnQiLCJ0cnlzIiwib3BzIiwiZyIsImNyZWF0ZSIsIkl0ZXJhdG9yIiwidmVyYiIsIml0ZXJhdG9yIiwidGhpcyIsInYiLCJvcCIsIlR5cGVFcnJvciIsInBvcCIsImxlbmd0aCIsInB1c2giLCJqb2luIiwiX19kaXJuYW1lIiwiZml4UGF0aCIsImphdmFBcmdzIiwiUGFyYW1ldGVyIiwiY29uY2F0IiwiaW5pdEphdmEiLCJob21lUGF0aCIsImNhbGxlck9wdGlvbnMiLCJleGVOYW1lIiwiX2EiLCJhbGxvd0pyZSIsImVyciIsImhvbWUiLCJFcnJvciIsImphciIsIm1haW5DbGFzcyIsImFkZGl0aW9uYWxKYXZhQXJncyIsImphdmFFeGVjdXRhYmxlIiwiSmF2YUNhbGxlciIsInJ1biIsInByaW50ZXIiLCJhcmdzIiwicHJpbnRlck5hbWUiLCJzdGRvdXQiLCJfYiIsImFyZyIsInN0YXR1cyIsInN0ZGVyciIsInRyaW0iLCJwcmludFJ1biIsInByaW50IiwiamF2YSIsImJhc2U2NFN0ciIsIkJ1ZmZlciIsImZyb20iLCJKU09OIiwic3RyaW5naWZ5IiwidG9TdHJpbmciLCJwZGYiLCJQUklOVCIsIlBSSU5URVJTIiwicGFyc2UiLCJERUZBVUxUIiwiX19zcHJlYWRBcnJheSIsInRvIiwicGFjayIsImFyZ3VtZW50cyIsImFyIiwibCIsIkFycmF5Iiwic2xpY2UiLCJnZXRQYXBlclNpemVJbmZvIiwiYXJnc18xIiwiX2kiLCJvcHRpb25zIiwiU0laRUlORk8iLCJnZXRQYXBlclNpemVJbmZvQWxsIiwiU0laRUlORk9TIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "printer-pdf",
3
- "version": "5.2.1",
3
+ "version": "5.2.3",
4
4
  "description": "A simple and powerful printing library for node and elctron environments.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -16,32 +16,33 @@
16
16
  "scripts": {
17
17
  "test": "esno test/index.ts",
18
18
  "lint": "prettier --write \"**/*.{js,ts,json,md,yml}\"",
19
- "build": "webpack --config webpack.config.js",
19
+ "build": "webpack --config webpack.config.ts",
20
20
  "lint-build": "npm run lint && npm run build"
21
21
  },
22
22
  "devDependencies": {
23
23
  "@types/node": "^25.1.0",
24
+ "@types/webpack": "^5.28.5",
24
25
  "@types/webpack-node-externals": "^3.0.4",
25
- "clean-webpack-plugin": "4.0.0",
26
26
  "copy-webpack-plugin": "^13.0.1",
27
27
  "electron-util": "^1.0.0",
28
28
  "esno": "^4.8.0",
29
29
  "prettier": "3.8.1",
30
30
  "ts-loader": "^9.5.4",
31
+ "ts-node": "^10.9.2",
31
32
  "typescript": "^5.9.3",
32
33
  "webpack": "^5.104.1",
33
34
  "webpack-cli": "^6.0.1",
34
35
  "webpack-node-externals": "^3.0.0"
35
36
  },
37
+ "dependencies": {
38
+ "find-java-home": "^2.0.0",
39
+ "java-caller": "^4.3.3"
40
+ },
36
41
  "keywords": [
37
42
  "printer-pdf",
38
43
  "pdf",
39
44
  "printer",
40
45
  "node.js",
41
46
  "electron"
42
- ],
43
- "dependencies": {
44
- "find-java-home": "^2.0.0",
45
- "java-caller": "^4.3.2"
46
- }
47
+ ]
47
48
  }
package/print/print.d.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  import { PrintOptions } from "../types";
2
- export default function print(pinter: PrintOptions): Promise<void>;
2
+ export default function print(printer: PrintOptions): Promise<void>;
package/printer.jar CHANGED
Binary file
package/types/index.d.ts CHANGED
@@ -9,7 +9,7 @@ export interface PaperSizesInfoType {
9
9
  printerName: string;
10
10
  taskNumber: number;
11
11
  status: number;
12
- statusMsg: number;
12
+ statusMsg: string;
13
13
  paperSizes: PaperSizeType[];
14
14
  }
15
15
  export interface PaperSizeType {
package/types/index.js ADDED
@@ -0,0 +1,2 @@
1
+ !function(e,o){if("object"==typeof exports&&"object"==typeof module)module.exports=o();else if("function"==typeof define&&define.amd)define([],o);else{var i=o();for(var E in i)("object"==typeof exports?exports:e)[E]=i[E]}}(global,()=>(()=>{"use strict";var e,o,i,E,_,n,O,s,t={d:(e,o)=>{for(var i in o)t.o(o,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:o[i]})},o:(e,o)=>Object.prototype.hasOwnProperty.call(e,o),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},a={};return t.r(a),t.d(a,{Chromaticity:()=>o,MediaSizeName:()=>e,MediaTray:()=>E,OrientationRequested:()=>_,PrinterActions:()=>s,Scaling:()=>n,Sides:()=>i,Subset:()=>O}),function(e){e.ISO_A0="iso-a0",e.ISO_A1="iso-a1",e.ISO_A2="iso-a2",e.ISO_A3="iso-a3",e.ISO_A4="iso-a4",e.ISO_A5="iso-a5",e.ISO_A6="iso-a6",e.ISO_A7="iso-a7",e.ISO_A8="iso-a8",e.ISO_A9="iso-a9",e.ISO_A10="iso-a10",e.ISO_B0="iso-b0",e.ISO_B1="iso-b1",e.ISO_B2="iso-b2",e.ISO_B3="iso-b3",e.ISO_B4="iso-b4",e.ISO_B5="iso-b5",e.ISO_B6="iso-b6",e.ISO_B7="iso-b7",e.ISO_B8="iso-b8",e.ISO_B9="iso-b9",e.ISO_B10="iso-b10",e.JIS_B0="jis-b0",e.JIS_B1="jis-b1",e.JIS_B2="jis-b2",e.JIS_B3="jis-b3",e.JIS_B4="jis-b4",e.JIS_B5="jis-b5",e.JIS_B6="jis-b6",e.JIS_B7="jis-b7",e.JIS_B8="jis-b8",e.JIS_B9="jis-b9",e.JIS_B10="jis-b10",e.ISO_C0="iso-c0",e.ISO_C1="iso-c1",e.ISO_C2="iso-c2",e.ISO_C3="iso-c3",e.ISO_C4="iso-c4",e.ISO_C5="iso-c5",e.ISO_C6="iso-c6",e.NA_LETTER="na-letter",e.NA_LEGAL="na-legal",e.EXECUTIVE="executive",e.LEDGER="ledger",e.TABLOID="tabloid",e.INVOICE="invoice",e.FOLIO="folio",e.QUARTO="quarto",e.JAPANESE_POSTCARD="japanese-postcard",e.JAPANESE_DOUBLE_POSTCARD="oufuko-postcard",e.A="a",e.B="b",e.C="c",e.D="d",e.E="e",e.ISO_DESIGNATED_LONG="iso-designated-long",e.ITALY_ENVELOPE="italian-envelope",e.MONARCH_ENVELOPE="monarch-envelope",e.PERSONAL_ENVELOPE="personal-envelope",e.NA_NUMBER_9_ENVELOPE="na-number-9-envelope",e.NA_NUMBER_10_ENVELOPE="na-number-10-envelope",e.NA_NUMBER_11_ENVELOPE="na-number-11-envelope",e.NA_NUMBER_12_ENVELOPE="na-number-12-envelope",e.NA_NUMBER_14_ENVELOPE="na-number-14-envelope",e.NA_6X9_ENVELOPE="na-6x9-envelope",e.NA_7X9_ENVELOPE="na-7x9-envelope",e.NA_9X11_ENVELOPE="na-9x11-envelope",e.NA_9X12_ENVELOPE="na-9x12-envelope",e.NA_10X13_ENVELOPE="na-10x13-envelope",e.NA_10X14_ENVELOPE="na-10x14-envelope",e.NA_10X15_ENVELOPE="na-10x15-envelope",e.NA_5X7="na-5x7",e.NA_8X10="na-8x10"}(e||(e={})),function(e){e.MONOCHROME="monochrome",e.COLOR="color"}(o||(o={})),function(e){e.ONE_SIDED="one-sided",e.TWO_SIDED_LONG_EDGE="two-sided-long-edge",e.TWO_SIDED_SHORT_EDGE="two-sided-short-edge"}(i||(i={})),function(e){e.TOP="top",e.MIDDLE="middle",e.BOTTOM="bottom",e.ENVELOPE="envelope",e.MANUAL="manual",e.LARGE_CAPACITY="large-capacity",e.MAIN="main",e.SIDE="side"}(E||(E={})),function(e){e.PORTRAIT="portrait",e.LANDSCAPE="landscape",e.REVERSE_LANDSCAPE="reverseLandscape",e.REVERSE_PORTRAIT="reversePortrait"}(_||(_={})),function(e){e.ACTUAL_SIZE="actual-size",e.SHRINK_TO_FIT="shrink-to-fits",e.STRETCH_TO_FIT="stretch-to-fits",e.SCALE_TO_FIT="scale-to-fits"}(n||(n={})),function(e){e.ALL="all",e.ODD="odd",e.EVEN="even"}(O||(O={})),function(e){e.DEFAULT="default",e.PRINTERS="printers",e.SIZEINFO="sizeInfo",e.SIZEINFOS="sizeInfos",e.PRINT="print"}(s||(s={})),a})());
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMvaW5kZXguanMiLCJtYXBwaW5ncyI6IkNBQUEsU0FBMkNBLEVBQU1DLEdBQ2hELEdBQXNCLGlCQUFaQyxTQUEwQyxpQkFBWEMsT0FDeENBLE9BQU9ELFFBQVVELFNBQ2IsR0FBcUIsbUJBQVhHLFFBQXlCQSxPQUFPQyxJQUM5Q0QsT0FBTyxHQUFJSCxPQUNQLENBQ0osSUFBSUssRUFBSUwsSUFDUixJQUFJLElBQUlNLEtBQUtELEdBQXVCLGlCQUFaSixRQUF1QkEsUUFBVUYsR0FBTU8sR0FBS0QsRUFBRUMsRUFDdkUsQ0FDQSxDQVRELENBU0dDLE9BQVEsSSxtQkNSWCxJQ0FXQyxFQTZFQUMsRUFNQUMsRUFPQUMsRUFZQUMsRUFPQUMsRUFPQUMsRUFNQUMsRUQxSFBDLEVBQXNCLENFQTFCQSxFQUF3QixDQUFDZixFQUFTZ0IsS0FDakMsSUFBSSxJQUFJQyxLQUFPRCxFQUNYRCxFQUFvQkcsRUFBRUYsRUFBWUMsS0FBU0YsRUFBb0JHLEVBQUVsQixFQUFTaUIsSUFDNUVFLE9BQU9DLGVBQWVwQixFQUFTaUIsRUFBSyxDQUFFSSxZQUFZLEVBQU1DLElBQUtOLEVBQVdDLE1DSjNFRixFQUF3QixDQUFDUSxFQUFLQyxJQUFVTCxPQUFPTSxVQUFVQyxlQUFlQyxLQUFLSixFQUFLQyxHQ0NsRlQsRUFBeUJmLElBQ0gsb0JBQVg0QixRQUEwQkEsT0FBT0MsYUFDMUNWLE9BQU9DLGVBQWVwQixFQUFTNEIsT0FBT0MsWUFBYSxDQUFFQyxNQUFPLFdBRTdEWCxPQUFPQyxlQUFlcEIsRUFBUyxhQUFjLENBQUU4QixPQUFPLE0sMEtISHZELFNBQVd2QixHQUNQQSxFQUFzQixPQUFJLFNBQzFCQSxFQUFzQixPQUFJLFNBQzFCQSxFQUFzQixPQUFJLFNBQzFCQSxFQUFzQixPQUFJLFNBQzFCQSxFQUFzQixPQUFJLFNBQzFCQSxFQUFzQixPQUFJLFNBQzFCQSxFQUFzQixPQUFJLFNBQzFCQSxFQUFzQixPQUFJLFNBQzFCQSxFQUFzQixPQUFJLFNBQzFCQSxFQUFzQixPQUFJLFNBQzFCQSxFQUF1QixRQUFJLFVBQzNCQSxFQUFzQixPQUFJLFNBQzFCQSxFQUFzQixPQUFJLFNBQzFCQSxFQUFzQixPQUFJLFNBQzFCQSxFQUFzQixPQUFJLFNBQzFCQSxFQUFzQixPQUFJLFNBQzFCQSxFQUFzQixPQUFJLFNBQzFCQSxFQUFzQixPQUFJLFNBQzFCQSxFQUFzQixPQUFJLFNBQzFCQSxFQUFzQixPQUFJLFNBQzFCQSxFQUFzQixPQUFJLFNBQzFCQSxFQUF1QixRQUFJLFVBQzNCQSxFQUFzQixPQUFJLFNBQzFCQSxFQUFzQixPQUFJLFNBQzFCQSxFQUFzQixPQUFJLFNBQzFCQSxFQUFzQixPQUFJLFNBQzFCQSxFQUFzQixPQUFJLFNBQzFCQSxFQUFzQixPQUFJLFNBQzFCQSxFQUFzQixPQUFJLFNBQzFCQSxFQUFzQixPQUFJLFNBQzFCQSxFQUFzQixPQUFJLFNBQzFCQSxFQUFzQixPQUFJLFNBQzFCQSxFQUF1QixRQUFJLFVBQzNCQSxFQUFzQixPQUFJLFNBQzFCQSxFQUFzQixPQUFJLFNBQzFCQSxFQUFzQixPQUFJLFNBQzFCQSxFQUFzQixPQUFJLFNBQzFCQSxFQUFzQixPQUFJLFNBQzFCQSxFQUFzQixPQUFJLFNBQzFCQSxFQUFzQixPQUFJLFNBQzFCQSxFQUF5QixVQUFJLFlBQzdCQSxFQUF3QixTQUFJLFdBQzVCQSxFQUF5QixVQUFJLFlBQzdCQSxFQUFzQixPQUFJLFNBQzFCQSxFQUF1QixRQUFJLFVBQzNCQSxFQUF1QixRQUFJLFVBQzNCQSxFQUFxQixNQUFJLFFBQ3pCQSxFQUFzQixPQUFJLFNBQzFCQSxFQUFpQyxrQkFBSSxvQkFDckNBLEVBQXdDLHlCQUFJLGtCQUM1Q0EsRUFBaUIsRUFBSSxJQUNyQkEsRUFBaUIsRUFBSSxJQUNyQkEsRUFBaUIsRUFBSSxJQUNyQkEsRUFBaUIsRUFBSSxJQUNyQkEsRUFBaUIsRUFBSSxJQUNyQkEsRUFBbUMsb0JBQUksc0JBQ3ZDQSxFQUE4QixlQUFJLG1CQUNsQ0EsRUFBZ0MsaUJBQUksbUJBQ3BDQSxFQUFpQyxrQkFBSSxvQkFDckNBLEVBQW9DLHFCQUFJLHVCQUN4Q0EsRUFBcUMsc0JBQUksd0JBQ3pDQSxFQUFxQyxzQkFBSSx3QkFDekNBLEVBQXFDLHNCQUFJLHdCQUN6Q0EsRUFBcUMsc0JBQUksd0JBQ3pDQSxFQUErQixnQkFBSSxrQkFDbkNBLEVBQStCLGdCQUFJLGtCQUNuQ0EsRUFBZ0MsaUJBQUksbUJBQ3BDQSxFQUFnQyxpQkFBSSxtQkFDcENBLEVBQWlDLGtCQUFJLG9CQUNyQ0EsRUFBaUMsa0JBQUksb0JBQ3JDQSxFQUFpQyxrQkFBSSxvQkFDckNBLEVBQXNCLE9BQUksU0FDMUJBLEVBQXVCLFFBQUksU0FDOUIsQ0ExRUQsQ0EwRUdBLElBQWtCQSxFQUFnQixDQUFDLElBR3RDLFNBQVdDLEdBQ1BBLEVBQXlCLFdBQUksYUFDN0JBLEVBQW9CLE1BQUksT0FDM0IsQ0FIRCxDQUdHQSxJQUFpQkEsRUFBZSxDQUFDLElBR3BDLFNBQVdDLEdBQ1BBLEVBQWlCLFVBQUksWUFDckJBLEVBQTJCLG9CQUFJLHNCQUMvQkEsRUFBNEIscUJBQUksc0JBQ25DLENBSkQsQ0FJR0EsSUFBVUEsRUFBUSxDQUFDLElBR3RCLFNBQVdDLEdBQ1BBLEVBQWUsSUFBSSxNQUNuQkEsRUFBa0IsT0FBSSxTQUN0QkEsRUFBa0IsT0FBSSxTQUN0QkEsRUFBb0IsU0FBSSxXQUN4QkEsRUFBa0IsT0FBSSxTQUN0QkEsRUFBMEIsZUFBSSxpQkFDOUJBLEVBQWdCLEtBQUksT0FDcEJBLEVBQWdCLEtBQUksTUFDdkIsQ0FURCxDQVNHQSxJQUFjQSxFQUFZLENBQUMsSUFHOUIsU0FBV0MsR0FDUEEsRUFBK0IsU0FBSSxXQUNuQ0EsRUFBZ0MsVUFBSSxZQUNwQ0EsRUFBd0Msa0JBQUksbUJBQzVDQSxFQUF1QyxpQkFBSSxpQkFDOUMsQ0FMRCxDQUtHQSxJQUF5QkEsRUFBdUIsQ0FBQyxJQUVwRCxTQUFXQyxHQUNQQSxFQUFxQixZQUFJLGNBQ3pCQSxFQUF1QixjQUFJLGlCQUMzQkEsRUFBd0IsZUFBSSxrQkFDNUJBLEVBQXNCLGFBQUksZUFDN0IsQ0FMRCxDQUtHQSxJQUFZQSxFQUFVLENBQUMsSUFFMUIsU0FBV0MsR0FDUEEsRUFBWSxJQUFJLE1BQ2hCQSxFQUFZLElBQUksTUFDaEJBLEVBQWEsS0FBSSxNQUNwQixDQUpELENBSUdBLElBQVdBLEVBQVMsQ0FBQyxJQUV4QixTQUFXQyxHQUNQQSxFQUF3QixRQUFJLFVBQzVCQSxFQUF5QixTQUFJLFdBQzdCQSxFQUF5QixTQUFJLFdBQzdCQSxFQUEwQixVQUFJLFlBQzlCQSxFQUFzQixNQUFJLE9BQzdCLENBTkQsQ0FNR0EsSUFBbUJBLEVBQWlCLENBQUMsSSIsInNvdXJjZXMiOlsid2VicGFjazovL3ByaW50ZXItcGRmL3dlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsIndlYnBhY2s6Ly9wcmludGVyLXBkZi93ZWJwYWNrL2Jvb3RzdHJhcCIsIndlYnBhY2s6Ly9wcmludGVyLXBkZi8uL3NyYy90eXBlcy9pbmRleC50cyIsIndlYnBhY2s6Ly9wcmludGVyLXBkZi93ZWJwYWNrL3J1bnRpbWUvZGVmaW5lIHByb3BlcnR5IGdldHRlcnMiLCJ3ZWJwYWNrOi8vcHJpbnRlci1wZGYvd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZCIsIndlYnBhY2s6Ly9wcmludGVyLXBkZi93ZWJwYWNrL3J1bnRpbWUvbWFrZSBuYW1lc3BhY2Ugb2JqZWN0Il0sInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKFtdLCBmYWN0b3J5KTtcblx0ZWxzZSB7XG5cdFx0dmFyIGEgPSBmYWN0b3J5KCk7XG5cdFx0Zm9yKHZhciBpIGluIGEpICh0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgPyBleHBvcnRzIDogcm9vdClbaV0gPSBhW2ldO1xuXHR9XG59KShnbG9iYWwsICgpID0+IHtcbnJldHVybiAiLCIvLyBUaGUgcmVxdWlyZSBzY29wZVxudmFyIF9fd2VicGFja19yZXF1aXJlX18gPSB7fTtcblxuIiwiLy8g57q45byg5aSn5bCPXG5leHBvcnQgdmFyIE1lZGlhU2l6ZU5hbWU7XG4oZnVuY3Rpb24gKE1lZGlhU2l6ZU5hbWUpIHtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0EwXCJdID0gXCJpc28tYTBcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0ExXCJdID0gXCJpc28tYTFcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0EyXCJdID0gXCJpc28tYTJcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0EzXCJdID0gXCJpc28tYTNcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0E0XCJdID0gXCJpc28tYTRcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0E1XCJdID0gXCJpc28tYTVcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0E2XCJdID0gXCJpc28tYTZcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0E3XCJdID0gXCJpc28tYTdcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0E4XCJdID0gXCJpc28tYThcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0E5XCJdID0gXCJpc28tYTlcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0ExMFwiXSA9IFwiaXNvLWExMFwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQjBcIl0gPSBcImlzby1iMFwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQjFcIl0gPSBcImlzby1iMVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQjJcIl0gPSBcImlzby1iMlwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQjNcIl0gPSBcImlzby1iM1wiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQjRcIl0gPSBcImlzby1iNFwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQjVcIl0gPSBcImlzby1iNVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQjZcIl0gPSBcImlzby1iNlwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQjdcIl0gPSBcImlzby1iN1wiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQjhcIl0gPSBcImlzby1iOFwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQjlcIl0gPSBcImlzby1iOVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQjEwXCJdID0gXCJpc28tYjEwXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkpJU19CMFwiXSA9IFwiamlzLWIwXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkpJU19CMVwiXSA9IFwiamlzLWIxXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkpJU19CMlwiXSA9IFwiamlzLWIyXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkpJU19CM1wiXSA9IFwiamlzLWIzXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkpJU19CNFwiXSA9IFwiamlzLWI0XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkpJU19CNVwiXSA9IFwiamlzLWI1XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkpJU19CNlwiXSA9IFwiamlzLWI2XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkpJU19CN1wiXSA9IFwiamlzLWI3XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkpJU19COFwiXSA9IFwiamlzLWI4XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkpJU19COVwiXSA9IFwiamlzLWI5XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkpJU19CMTBcIl0gPSBcImppcy1iMTBcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0MwXCJdID0gXCJpc28tYzBcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0MxXCJdID0gXCJpc28tYzFcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0MyXCJdID0gXCJpc28tYzJcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0MzXCJdID0gXCJpc28tYzNcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0M0XCJdID0gXCJpc28tYzRcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0M1XCJdID0gXCJpc28tYzVcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0M2XCJdID0gXCJpc28tYzZcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiTkFfTEVUVEVSXCJdID0gXCJuYS1sZXR0ZXJcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiTkFfTEVHQUxcIl0gPSBcIm5hLWxlZ2FsXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkVYRUNVVElWRVwiXSA9IFwiZXhlY3V0aXZlXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkxFREdFUlwiXSA9IFwibGVkZ2VyXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIlRBQkxPSURcIl0gPSBcInRhYmxvaWRcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSU5WT0lDRVwiXSA9IFwiaW52b2ljZVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJGT0xJT1wiXSA9IFwiZm9saW9cIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiUVVBUlRPXCJdID0gXCJxdWFydG9cIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSkFQQU5FU0VfUE9TVENBUkRcIl0gPSBcImphcGFuZXNlLXBvc3RjYXJkXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkpBUEFORVNFX0RPVUJMRV9QT1NUQ0FSRFwiXSA9IFwib3VmdWtvLXBvc3RjYXJkXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkFcIl0gPSBcImFcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiQlwiXSA9IFwiYlwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJDXCJdID0gXCJjXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkRcIl0gPSBcImRcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiRVwiXSA9IFwiZVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fREVTSUdOQVRFRF9MT05HXCJdID0gXCJpc28tZGVzaWduYXRlZC1sb25nXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklUQUxZX0VOVkVMT1BFXCJdID0gXCJpdGFsaWFuLWVudmVsb3BlXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIk1PTkFSQ0hfRU5WRUxPUEVcIl0gPSBcIm1vbmFyY2gtZW52ZWxvcGVcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiUEVSU09OQUxfRU5WRUxPUEVcIl0gPSBcInBlcnNvbmFsLWVudmVsb3BlXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIk5BX05VTUJFUl85X0VOVkVMT1BFXCJdID0gXCJuYS1udW1iZXItOS1lbnZlbG9wZVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJOQV9OVU1CRVJfMTBfRU5WRUxPUEVcIl0gPSBcIm5hLW51bWJlci0xMC1lbnZlbG9wZVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJOQV9OVU1CRVJfMTFfRU5WRUxPUEVcIl0gPSBcIm5hLW51bWJlci0xMS1lbnZlbG9wZVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJOQV9OVU1CRVJfMTJfRU5WRUxPUEVcIl0gPSBcIm5hLW51bWJlci0xMi1lbnZlbG9wZVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJOQV9OVU1CRVJfMTRfRU5WRUxPUEVcIl0gPSBcIm5hLW51bWJlci0xNC1lbnZlbG9wZVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJOQV82WDlfRU5WRUxPUEVcIl0gPSBcIm5hLTZ4OS1lbnZlbG9wZVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJOQV83WDlfRU5WRUxPUEVcIl0gPSBcIm5hLTd4OS1lbnZlbG9wZVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJOQV85WDExX0VOVkVMT1BFXCJdID0gXCJuYS05eDExLWVudmVsb3BlXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIk5BXzlYMTJfRU5WRUxPUEVcIl0gPSBcIm5hLTl4MTItZW52ZWxvcGVcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiTkFfMTBYMTNfRU5WRUxPUEVcIl0gPSBcIm5hLTEweDEzLWVudmVsb3BlXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIk5BXzEwWDE0X0VOVkVMT1BFXCJdID0gXCJuYS0xMHgxNC1lbnZlbG9wZVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJOQV8xMFgxNV9FTlZFTE9QRVwiXSA9IFwibmEtMTB4MTUtZW52ZWxvcGVcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiTkFfNVg3XCJdID0gXCJuYS01eDdcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiTkFfOFgxMFwiXSA9IFwibmEtOHgxMFwiO1xufSkoTWVkaWFTaXplTmFtZSB8fCAoTWVkaWFTaXplTmFtZSA9IHt9KSk7XG4vLyDorr7nva7oibLlvalcbmV4cG9ydCB2YXIgQ2hyb21hdGljaXR5O1xuKGZ1bmN0aW9uIChDaHJvbWF0aWNpdHkpIHtcbiAgICBDaHJvbWF0aWNpdHlbXCJNT05PQ0hST01FXCJdID0gXCJtb25vY2hyb21lXCI7XG4gICAgQ2hyb21hdGljaXR5W1wiQ09MT1JcIl0gPSBcImNvbG9yXCI7XG59KShDaHJvbWF0aWNpdHkgfHwgKENocm9tYXRpY2l0eSA9IHt9KSk7XG4vLyDorr7nva7lj4zpnaLmiZPljbBcbmV4cG9ydCB2YXIgU2lkZXM7XG4oZnVuY3Rpb24gKFNpZGVzKSB7XG4gICAgU2lkZXNbXCJPTkVfU0lERURcIl0gPSBcIm9uZS1zaWRlZFwiO1xuICAgIFNpZGVzW1wiVFdPX1NJREVEX0xPTkdfRURHRVwiXSA9IFwidHdvLXNpZGVkLWxvbmctZWRnZVwiO1xuICAgIFNpZGVzW1wiVFdPX1NJREVEX1NIT1JUX0VER0VcIl0gPSBcInR3by1zaWRlZC1zaG9ydC1lZGdlXCI7XG59KShTaWRlcyB8fCAoU2lkZXMgPSB7fSkpO1xuLy8g5aKo55uS57G75Z6LXG5leHBvcnQgdmFyIE1lZGlhVHJheTtcbihmdW5jdGlvbiAoTWVkaWFUcmF5KSB7XG4gICAgTWVkaWFUcmF5W1wiVE9QXCJdID0gXCJ0b3BcIjtcbiAgICBNZWRpYVRyYXlbXCJNSURETEVcIl0gPSBcIm1pZGRsZVwiO1xuICAgIE1lZGlhVHJheVtcIkJPVFRPTVwiXSA9IFwiYm90dG9tXCI7XG4gICAgTWVkaWFUcmF5W1wiRU5WRUxPUEVcIl0gPSBcImVudmVsb3BlXCI7XG4gICAgTWVkaWFUcmF5W1wiTUFOVUFMXCJdID0gXCJtYW51YWxcIjtcbiAgICBNZWRpYVRyYXlbXCJMQVJHRV9DQVBBQ0lUWVwiXSA9IFwibGFyZ2UtY2FwYWNpdHlcIjtcbiAgICBNZWRpYVRyYXlbXCJNQUlOXCJdID0gXCJtYWluXCI7XG4gICAgTWVkaWFUcmF5W1wiU0lERVwiXSA9IFwic2lkZVwiO1xufSkoTWVkaWFUcmF5IHx8IChNZWRpYVRyYXkgPSB7fSkpO1xuLy8g6K6+572u5omT5Y2w5py65pa55ZCRXG5leHBvcnQgdmFyIE9yaWVudGF0aW9uUmVxdWVzdGVkO1xuKGZ1bmN0aW9uIChPcmllbnRhdGlvblJlcXVlc3RlZCkge1xuICAgIE9yaWVudGF0aW9uUmVxdWVzdGVkW1wiUE9SVFJBSVRcIl0gPSBcInBvcnRyYWl0XCI7XG4gICAgT3JpZW50YXRpb25SZXF1ZXN0ZWRbXCJMQU5EU0NBUEVcIl0gPSBcImxhbmRzY2FwZVwiO1xuICAgIE9yaWVudGF0aW9uUmVxdWVzdGVkW1wiUkVWRVJTRV9MQU5EU0NBUEVcIl0gPSBcInJldmVyc2VMYW5kc2NhcGVcIjtcbiAgICBPcmllbnRhdGlvblJlcXVlc3RlZFtcIlJFVkVSU0VfUE9SVFJBSVRcIl0gPSBcInJldmVyc2VQb3J0cmFpdFwiO1xufSkoT3JpZW50YXRpb25SZXF1ZXN0ZWQgfHwgKE9yaWVudGF0aW9uUmVxdWVzdGVkID0ge30pKTtcbmV4cG9ydCB2YXIgU2NhbGluZztcbihmdW5jdGlvbiAoU2NhbGluZykge1xuICAgIFNjYWxpbmdbXCJBQ1RVQUxfU0laRVwiXSA9IFwiYWN0dWFsLXNpemVcIjtcbiAgICBTY2FsaW5nW1wiU0hSSU5LX1RPX0ZJVFwiXSA9IFwic2hyaW5rLXRvLWZpdHNcIjtcbiAgICBTY2FsaW5nW1wiU1RSRVRDSF9UT19GSVRcIl0gPSBcInN0cmV0Y2gtdG8tZml0c1wiO1xuICAgIFNjYWxpbmdbXCJTQ0FMRV9UT19GSVRcIl0gPSBcInNjYWxlLXRvLWZpdHNcIjtcbn0pKFNjYWxpbmcgfHwgKFNjYWxpbmcgPSB7fSkpO1xuZXhwb3J0IHZhciBTdWJzZXQ7XG4oZnVuY3Rpb24gKFN1YnNldCkge1xuICAgIFN1YnNldFtcIkFMTFwiXSA9IFwiYWxsXCI7XG4gICAgU3Vic2V0W1wiT0REXCJdID0gXCJvZGRcIjtcbiAgICBTdWJzZXRbXCJFVkVOXCJdID0gXCJldmVuXCI7XG59KShTdWJzZXQgfHwgKFN1YnNldCA9IHt9KSk7XG5leHBvcnQgdmFyIFByaW50ZXJBY3Rpb25zO1xuKGZ1bmN0aW9uIChQcmludGVyQWN0aW9ucykge1xuICAgIFByaW50ZXJBY3Rpb25zW1wiREVGQVVMVFwiXSA9IFwiZGVmYXVsdFwiO1xuICAgIFByaW50ZXJBY3Rpb25zW1wiUFJJTlRFUlNcIl0gPSBcInByaW50ZXJzXCI7XG4gICAgUHJpbnRlckFjdGlvbnNbXCJTSVpFSU5GT1wiXSA9IFwic2l6ZUluZm9cIjtcbiAgICBQcmludGVyQWN0aW9uc1tcIlNJWkVJTkZPU1wiXSA9IFwic2l6ZUluZm9zXCI7XG4gICAgUHJpbnRlckFjdGlvbnNbXCJQUklOVFwiXSA9IFwicHJpbnRcIjtcbn0pKFByaW50ZXJBY3Rpb25zIHx8IChQcmludGVyQWN0aW9ucyA9IHt9KSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lhVzVrWlhndWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUl1TGk4dUxpOXpjbU12ZEhsd1pYTXZhVzVrWlhndWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJlVUpCTEU5QlFVODdRVUZEVUN4TlFVRk5MRU5CUVU0c1NVRkJXU3hoUVRCRldEdEJRVEZGUkN4WFFVRlpMR0ZCUVdFN1NVRkRka0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYjBOQlFXMUNMRU5CUVVFN1NVRkRia0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYjBOQlFXMUNMRU5CUVVFN1NVRkRia0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYjBOQlFXMUNMRU5CUVVFN1NVRkRia0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzZDBOQlFYVkNMRU5CUVVFN1NVRkRka0lzYzBOQlFYRkNMRU5CUVVFN1NVRkRja0lzZDBOQlFYVkNMRU5CUVVFN1NVRkRka0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYjBOQlFXMUNMRU5CUVVFN1NVRkRia0lzYjBOQlFXMUNMRU5CUVVFN1NVRkRia0lzWjBOQlFXVXNRMEZCUVR0SlFVTm1MR3REUVVGcFFpeERRVUZCTzBsQlEycENMSGRFUVVGMVF5eERRVUZCTzBsQlEzWkRMRFpFUVVFMFF5eERRVUZCTzBsQlF6VkRMSGRDUVVGUExFTkJRVUU3U1VGRFVDeDNRa0ZCVHl4RFFVRkJPMGxCUTFBc2QwSkJRVThzUTBGQlFUdEpRVU5RTEhkQ1FVRlBMRU5CUVVFN1NVRkRVQ3gzUWtGQlR5eERRVUZCTzBsQlExQXNORVJCUVRKRExFTkJRVUU3U1VGRE0wTXNiMFJCUVcxRExFTkJRVUU3U1VGRGJrTXNjMFJCUVhGRExFTkJRVUU3U1VGRGNrTXNkMFJCUVhWRExFTkJRVUU3U1VGRGRrTXNPRVJCUVRaRExFTkJRVUU3U1VGRE4wTXNaMFZCUVN0RExFTkJRVUU3U1VGREwwTXNaMFZCUVN0RExFTkJRVUU3U1VGREwwTXNaMFZCUVN0RExFTkJRVUU3U1VGREwwTXNaMFZCUVN0RExFTkJRVUU3U1VGREwwTXNiMFJCUVcxRExFTkJRVUU3U1VGRGJrTXNiMFJCUVcxRExFTkJRVUU3U1VGRGJrTXNjMFJCUVhGRExFTkJRVUU3U1VGRGNrTXNjMFJCUVhGRExFTkJRVUU3U1VGRGNrTXNkMFJCUVhWRExFTkJRVUU3U1VGRGRrTXNkMFJCUVhWRExFTkJRVUU3U1VGRGRrTXNkMFJCUVhWRExFTkJRVUU3U1VGRGRrTXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNiME5CUVcxQ0xFTkJRVUU3UVVGRGNrSXNRMEZCUXl4RlFURkZWeXhoUVVGaExFdEJRV0lzWVVGQllTeFJRVEJGZUVJN1FVRkZSQ3hQUVVGUE8wRkJRMUFzVFVGQlRTeERRVUZPTEVsQlFWa3NXVUZIV0R0QlFVaEVMRmRCUVZrc1dVRkJXVHRKUVVOMFFpeDVRMEZCZVVJc1EwRkJRVHRKUVVONlFpd3JRa0ZCWlN4RFFVRkJPMEZCUTJwQ0xFTkJRVU1zUlVGSVZ5eFpRVUZaTEV0QlFWb3NXVUZCV1N4UlFVZDJRanRCUVVWRUxGTkJRVk03UVVGRFZDeE5RVUZOTEVOQlFVNHNTVUZCV1N4TFFVbFlPMEZCU2tRc1YwRkJXU3hMUVVGTE8wbEJRMllzWjBOQlFYVkNMRU5CUVVFN1NVRkRka0lzYjBSQlFUSkRMRU5CUVVFN1NVRkRNME1zYzBSQlFUWkRMRU5CUVVFN1FVRkRMME1zUTBGQlF5eEZRVXBYTEV0QlFVc3NTMEZCVEN4TFFVRkxMRkZCU1doQ08wRkJSVVFzVDBGQlR6dEJRVU5RTEUxQlFVMHNRMEZCVGl4SlFVRlpMRk5CVTFnN1FVRlVSQ3hYUVVGWkxGTkJRVk03U1VGRGJrSXNkMEpCUVZjc1EwRkJRVHRKUVVOWUxEaENRVUZwUWl4RFFVRkJPMGxCUTJwQ0xEaENRVUZwUWl4RFFVRkJPMGxCUTJwQ0xHdERRVUZ4UWl4RFFVRkJPMGxCUTNKQ0xEaENRVUZwUWl4RFFVRkJPMGxCUTJwQ0xEaERRVUZwUXl4RFFVRkJPMGxCUTJwRExEQkNRVUZoTEVOQlFVRTdTVUZEWWl3d1FrRkJZU3hEUVVGQk8wRkJRMllzUTBGQlF5eEZRVlJYTEZOQlFWTXNTMEZCVkN4VFFVRlRMRkZCVTNCQ08wRkJSVVFzVlVGQlZUdEJRVU5XTEUxQlFVMHNRMEZCVGl4SlFVRlpMRzlDUVV0WU8wRkJURVFzVjBGQldTeHZRa0ZCYjBJN1NVRkRPVUlzTmtOQlFYRkNMRU5CUVVFN1NVRkRja0lzSzBOQlFYVkNMRU5CUVVFN1NVRkRka0lzT0VSQlFYTkRMRU5CUVVFN1NVRkRkRU1zTkVSQlFXOURMRU5CUVVFN1FVRkRkRU1zUTBGQlF5eEZRVXhYTEc5Q1FVRnZRaXhMUVVGd1FpeHZRa0ZCYjBJc1VVRkxMMEk3UVVGRlJDeE5RVUZOTEVOQlFVNHNTVUZCV1N4UFFVdFlPMEZCVEVRc1YwRkJXU3hQUVVGUE8wbEJRMnBDTEhORFFVRXlRaXhEUVVGQk8wbEJRek5DTERKRFFVRm5ReXhEUVVGQk8wbEJRMmhETERaRFFVRnJReXhEUVVGQk8wbEJRMnhETEhsRFFVRTRRaXhEUVVGQk8wRkJRMmhETEVOQlFVTXNSVUZNVnl4UFFVRlBMRXRCUVZBc1QwRkJUeXhSUVV0c1FqdEJRVVZFTEUxQlFVMHNRMEZCVGl4SlFVRlpMRTFCU1ZnN1FVRktSQ3hYUVVGWkxFMUJRVTA3U1VGRGFFSXNjVUpCUVZjc1EwRkJRVHRKUVVOWUxIRkNRVUZYTEVOQlFVRTdTVUZEV0N4MVFrRkJZU3hEUVVGQk8wRkJRMllzUTBGQlF5eEZRVXBYTEUxQlFVMHNTMEZCVGl4TlFVRk5MRkZCU1dwQ08wRkJSVVFzVFVGQlRTeERRVUZPTEVsQlFWa3NZMEZOV0R0QlFVNUVMRmRCUVZrc1kwRkJZenRKUVVONFFpeHhRMEZCYlVJc1EwRkJRVHRKUVVOdVFpeDFRMEZCY1VJc1EwRkJRVHRKUVVOeVFpeDFRMEZCY1VJc1EwRkJRVHRKUVVOeVFpeDVRMEZCZFVJc1EwRkJRVHRKUVVOMlFpeHBRMEZCWlN4RFFVRkJPMEZCUTJwQ0xFTkJRVU1zUlVGT1Z5eGpRVUZqTEV0QlFXUXNZMEZCWXl4UlFVMTZRaUo5IiwiLy8gZGVmaW5lIGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5kID0gKGV4cG9ydHMsIGRlZmluaXRpb24pID0+IHtcblx0Zm9yKHZhciBrZXkgaW4gZGVmaW5pdGlvbikge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywga2V5KSkge1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcblx0XHR9XG5cdH1cbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5vID0gKG9iaiwgcHJvcCkgPT4gKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApKSIsIi8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uciA9IChleHBvcnRzKSA9PiB7XG5cdGlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykge1xuXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuXHR9XG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG59OyJdLCJuYW1lcyI6WyJyb290IiwiZmFjdG9yeSIsImV4cG9ydHMiLCJtb2R1bGUiLCJkZWZpbmUiLCJhbWQiLCJhIiwiaSIsImdsb2JhbCIsIk1lZGlhU2l6ZU5hbWUiLCJDaHJvbWF0aWNpdHkiLCJTaWRlcyIsIk1lZGlhVHJheSIsIk9yaWVudGF0aW9uUmVxdWVzdGVkIiwiU2NhbGluZyIsIlN1YnNldCIsIlByaW50ZXJBY3Rpb25zIiwiX193ZWJwYWNrX3JlcXVpcmVfXyIsImRlZmluaXRpb24iLCJrZXkiLCJvIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJlbnVtZXJhYmxlIiwiZ2V0Iiwib2JqIiwicHJvcCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIlN5bWJvbCIsInRvU3RyaW5nVGFnIiwidmFsdWUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==
package/types/index.ts CHANGED
@@ -1,178 +1,175 @@
1
1
  export interface Printer {
2
- deviceID: string;
3
- printerName: string;
2
+ deviceID: string;
3
+ printerName: string;
4
4
  }
5
5
 
6
-
7
6
  export interface paperSizeInfoOptions {
8
- printer?: string;
7
+ printer?: string;
9
8
  }
10
9
 
11
10
  export interface PaperSizesInfoType {
12
- printerName: string;
13
- taskNumber: number;
14
- status: number;
15
- statusMsg: number;
16
- paperSizes: PaperSizeType[];
11
+ printerName: string;
12
+ taskNumber: number;
13
+ status: number;
14
+ statusMsg: string;
15
+ paperSizes: PaperSizeType[];
17
16
  }
18
17
 
19
18
  export interface PaperSizeType {
20
- height: number;
21
- kind: number;
22
- paperName: string;
23
- rawKind: number;
24
- width: number;
19
+ height: number;
20
+ kind: number;
21
+ paperName: string;
22
+ rawKind: number;
23
+ width: number;
25
24
  }
26
25
 
27
26
  // 纸张大小
28
27
  export enum MediaSizeName {
29
- ISO_A0 = "iso-a0",
30
- ISO_A1 = "iso-a1",
31
- ISO_A2 = "iso-a2",
32
- ISO_A3 = "iso-a3",
33
- ISO_A4 = "iso-a4",// 默认
34
- ISO_A5 = "iso-a5",
35
- ISO_A6 = "iso-a6",
36
- ISO_A7 = "iso-a7",
37
- ISO_A8 = "iso-a8",
38
- ISO_A9 = "iso-a9",
39
- ISO_A10 = "iso-a10",
40
- ISO_B0 = "iso-b0",
41
- ISO_B1 = "iso-b1",
42
- ISO_B2 = "iso-b2",
43
- ISO_B3 = "iso-b3",
44
- ISO_B4 = "iso-b4",
45
- ISO_B5 = "iso-b5",
46
- ISO_B6 = "iso-b6",
47
- ISO_B7 = "iso-b7",
48
- ISO_B8 = "iso-b8",
49
- ISO_B9 = "iso-b9",
50
- ISO_B10 = "iso-b10",
51
- JIS_B0 = "jis-b0",
52
- JIS_B1 = "jis-b1",
53
- JIS_B2 = "jis-b2",
54
- JIS_B3 = "jis-b3",
55
- JIS_B4 = "jis-b4",
56
- JIS_B5 = "jis-b5",
57
- JIS_B6 = "jis-b6",
58
- JIS_B7 = "jis-b7",
59
- JIS_B8 = "jis-b8",
60
- JIS_B9 = "jis-b9",
61
- JIS_B10 = "jis-b10",
62
- ISO_C0 = "iso-c0",
63
- ISO_C1 = "iso-c1",
64
- ISO_C2 = "iso-c2",
65
- ISO_C3 = "iso-c3",
66
- ISO_C4 = "iso-c4",
67
- ISO_C5 = "iso-c5",
68
- ISO_C6 = "iso-c6",
69
- NA_LETTER = "na-letter",
70
- NA_LEGAL = "na-legal",
71
- EXECUTIVE = "executive",
72
- LEDGER = "ledger",
73
- TABLOID = "tabloid",
74
- INVOICE = "invoice",
75
- FOLIO = "folio",
76
- QUARTO = "quarto",
77
- JAPANESE_POSTCARD = "japanese-postcard",
78
- JAPANESE_DOUBLE_POSTCARD = "oufuko-postcard",
79
- A = "a",
80
- B = "b",
81
- C = "c",
82
- D = "d",
83
- E = "e",
84
- ISO_DESIGNATED_LONG = "iso-designated-long",
85
- ITALY_ENVELOPE = "italian-envelope",
86
- MONARCH_ENVELOPE = "monarch-envelope",
87
- PERSONAL_ENVELOPE = "personal-envelope",
88
- NA_NUMBER_9_ENVELOPE = "na-number-9-envelope",
89
- NA_NUMBER_10_ENVELOPE = "na-number-10-envelope",
90
- NA_NUMBER_11_ENVELOPE = "na-number-11-envelope",
91
- NA_NUMBER_12_ENVELOPE = "na-number-12-envelope",
92
- NA_NUMBER_14_ENVELOPE = "na-number-14-envelope",
93
- NA_6X9_ENVELOPE = "na-6x9-envelope",
94
- NA_7X9_ENVELOPE = "na-7x9-envelope",
95
- NA_9X11_ENVELOPE = "na-9x11-envelope",
96
- NA_9X12_ENVELOPE = "na-9x12-envelope",
97
- NA_10X13_ENVELOPE = "na-10x13-envelope",
98
- NA_10X14_ENVELOPE = "na-10x14-envelope",
99
- NA_10X15_ENVELOPE = "na-10x15-envelope",
100
- NA_5X7 = "na-5x7",
101
- NA_8X10 = "na-8x10"
28
+ ISO_A0 = "iso-a0",
29
+ ISO_A1 = "iso-a1",
30
+ ISO_A2 = "iso-a2",
31
+ ISO_A3 = "iso-a3",
32
+ ISO_A4 = "iso-a4", // 默认
33
+ ISO_A5 = "iso-a5",
34
+ ISO_A6 = "iso-a6",
35
+ ISO_A7 = "iso-a7",
36
+ ISO_A8 = "iso-a8",
37
+ ISO_A9 = "iso-a9",
38
+ ISO_A10 = "iso-a10",
39
+ ISO_B0 = "iso-b0",
40
+ ISO_B1 = "iso-b1",
41
+ ISO_B2 = "iso-b2",
42
+ ISO_B3 = "iso-b3",
43
+ ISO_B4 = "iso-b4",
44
+ ISO_B5 = "iso-b5",
45
+ ISO_B6 = "iso-b6",
46
+ ISO_B7 = "iso-b7",
47
+ ISO_B8 = "iso-b8",
48
+ ISO_B9 = "iso-b9",
49
+ ISO_B10 = "iso-b10",
50
+ JIS_B0 = "jis-b0",
51
+ JIS_B1 = "jis-b1",
52
+ JIS_B2 = "jis-b2",
53
+ JIS_B3 = "jis-b3",
54
+ JIS_B4 = "jis-b4",
55
+ JIS_B5 = "jis-b5",
56
+ JIS_B6 = "jis-b6",
57
+ JIS_B7 = "jis-b7",
58
+ JIS_B8 = "jis-b8",
59
+ JIS_B9 = "jis-b9",
60
+ JIS_B10 = "jis-b10",
61
+ ISO_C0 = "iso-c0",
62
+ ISO_C1 = "iso-c1",
63
+ ISO_C2 = "iso-c2",
64
+ ISO_C3 = "iso-c3",
65
+ ISO_C4 = "iso-c4",
66
+ ISO_C5 = "iso-c5",
67
+ ISO_C6 = "iso-c6",
68
+ NA_LETTER = "na-letter",
69
+ NA_LEGAL = "na-legal",
70
+ EXECUTIVE = "executive",
71
+ LEDGER = "ledger",
72
+ TABLOID = "tabloid",
73
+ INVOICE = "invoice",
74
+ FOLIO = "folio",
75
+ QUARTO = "quarto",
76
+ JAPANESE_POSTCARD = "japanese-postcard",
77
+ JAPANESE_DOUBLE_POSTCARD = "oufuko-postcard",
78
+ A = "a",
79
+ B = "b",
80
+ C = "c",
81
+ D = "d",
82
+ E = "e",
83
+ ISO_DESIGNATED_LONG = "iso-designated-long",
84
+ ITALY_ENVELOPE = "italian-envelope",
85
+ MONARCH_ENVELOPE = "monarch-envelope",
86
+ PERSONAL_ENVELOPE = "personal-envelope",
87
+ NA_NUMBER_9_ENVELOPE = "na-number-9-envelope",
88
+ NA_NUMBER_10_ENVELOPE = "na-number-10-envelope",
89
+ NA_NUMBER_11_ENVELOPE = "na-number-11-envelope",
90
+ NA_NUMBER_12_ENVELOPE = "na-number-12-envelope",
91
+ NA_NUMBER_14_ENVELOPE = "na-number-14-envelope",
92
+ NA_6X9_ENVELOPE = "na-6x9-envelope",
93
+ NA_7X9_ENVELOPE = "na-7x9-envelope",
94
+ NA_9X11_ENVELOPE = "na-9x11-envelope",
95
+ NA_9X12_ENVELOPE = "na-9x12-envelope",
96
+ NA_10X13_ENVELOPE = "na-10x13-envelope",
97
+ NA_10X14_ENVELOPE = "na-10x14-envelope",
98
+ NA_10X15_ENVELOPE = "na-10x15-envelope",
99
+ NA_5X7 = "na-5x7",
100
+ NA_8X10 = "na-8x10",
102
101
  }
103
102
 
104
-
105
103
  // 设置色彩
106
104
  export enum Chromaticity {
107
- MONOCHROME = "monochrome",// 黑白(默认)
108
- COLOR = "color",// 色彩
105
+ MONOCHROME = "monochrome", // 黑白(默认)
106
+ COLOR = "color", // 色彩
109
107
  }
110
108
 
111
109
  // 设置双面打印
112
110
  export enum Sides {
113
- ONE_SIDED = "one-sided",// 单面(默认)
114
- TWO_SIDED_LONG_EDGE = "two-sided-long-edge",// 双面长边
115
- TWO_SIDED_SHORT_EDGE = "two-sided-short-edge"// 双面短边
111
+ ONE_SIDED = "one-sided", // 单面(默认)
112
+ TWO_SIDED_LONG_EDGE = "two-sided-long-edge", // 双面长边
113
+ TWO_SIDED_SHORT_EDGE = "two-sided-short-edge", // 双面短边
116
114
  }
117
115
 
118
116
  // 墨盒类型
119
117
  export enum MediaTray {
120
- TOP = "top",// 顶部纸匣
121
- MIDDLE = "middle", // 中间纸匣
122
- BOTTOM = "bottom", // 底部纸匣
123
- ENVELOPE = "envelope",// 信封送纸器
124
- MANUAL = "manual",// 手动进纸托盘
125
- LARGE_CAPACITY = "large-capacity", // 大容量进纸器
126
- MAIN = "main",// 主纸匣 (默认)
127
- SIDE = "side",// 侧边进纸托盘
118
+ TOP = "top", // 顶部纸匣
119
+ MIDDLE = "middle", // 中间纸匣
120
+ BOTTOM = "bottom", // 底部纸匣
121
+ ENVELOPE = "envelope", // 信封送纸器
122
+ MANUAL = "manual", // 手动进纸托盘
123
+ LARGE_CAPACITY = "large-capacity", // 大容量进纸器
124
+ MAIN = "main", // 主纸匣 (默认)
125
+ SIDE = "side", // 侧边进纸托盘
128
126
  }
129
127
 
130
-
131
128
  // 设置打印机方向
132
129
  export enum OrientationRequested {
133
- PORTRAIT = "portrait",// 纵向: 纸张短边在上 (标准纵向)(默认)
134
- LANDSCAPE = "landscape",// 横向: 纸张长边在上 (顺时针旋转 90 度)
135
- REVERSE_LANDSCAPE = "reverseLandscape",// 反向横向: 逆时针旋转 90 度
136
- REVERSE_PORTRAIT = "reversePortrait",// 反向纵向: 旋转 180 度
130
+ PORTRAIT = "portrait", // 纵向: 纸张短边在上 (标准纵向)(默认)
131
+ LANDSCAPE = "landscape", // 横向: 纸张长边在上 (顺时针旋转 90 度)
132
+ REVERSE_LANDSCAPE = "reverseLandscape", // 反向横向: 逆时针旋转 90 度
133
+ REVERSE_PORTRAIT = "reversePortrait", // 反向纵向: 旋转 180 度
137
134
  }
138
135
 
139
136
  export enum Scaling {
140
- ACTUAL_SIZE = "actual-size",// 反向纵向: 旋转 180 度
141
- SHRINK_TO_FIT = "shrink-to-fits",// 缩小以适应: 仅当 PDF 页面大于纸张时缩小,保持长宽比(默认)
142
- STRETCH_TO_FIT = "stretch-to-fits",// 拉伸以适应: 强制填满纸张,可能会导致图像拉伸变形
143
- SCALE_TO_FIT = "scale-to-fits",// 缩放以适应: 无论大小,均缩放至完全符合纸张可打印区域
137
+ ACTUAL_SIZE = "actual-size", // 反向纵向: 旋转 180 度
138
+ SHRINK_TO_FIT = "shrink-to-fits", // 缩小以适应: 仅当 PDF 页面大于纸张时缩小,保持长宽比(默认)
139
+ STRETCH_TO_FIT = "stretch-to-fits", // 拉伸以适应: 强制填满纸张,可能会导致图像拉伸变形
140
+ SCALE_TO_FIT = "scale-to-fits", // 缩放以适应: 无论大小,均缩放至完全符合纸张可打印区域
144
141
  }
145
142
 
146
143
  export enum Subset {
147
- ALL = "all",// 全部(默认)
148
- ODD = "odd",// 偶数
149
- EVEN = "even"// 奇数
144
+ ALL = "all", // 全部(默认)
145
+ ODD = "odd", // 偶数
146
+ EVEN = "even", // 奇数
150
147
  }
151
148
 
152
149
  export enum PrinterActions {
153
- DEFAULT = "default",
154
- PRINTERS = "printers",
155
- SIZEINFO = "sizeInfo",
156
- SIZEINFOS = "sizeInfos",
157
- PRINT = "print",
150
+ DEFAULT = "default",
151
+ PRINTERS = "printers",
152
+ SIZEINFO = "sizeInfo",
153
+ SIZEINFOS = "sizeInfos",
154
+ PRINT = "print",
158
155
  }
159
156
 
160
157
  export interface Options {
161
- arg: PrinterActions;
162
- printerName?: string;
158
+ arg: PrinterActions;
159
+ printerName?: string;
163
160
  }
164
161
 
165
162
  export interface PrintOptions {
166
- printer?: string;// 打印机名称
167
- pdf: string;// 文件路径
168
- pages?: string;// 打印页面范围
169
- subset?: Subset;// 子集
170
- orientation?: OrientationRequested;
171
- scale?: Scaling;// 缩放
172
- monochrome?: Chromaticity;// 色彩打印
173
- side?: Sides; //双面打印
174
- bin?: MediaTray;// 墨盒类型
175
- paperSize?: MediaSizeName;// 打印纸张
176
- printDialog?: boolean;// 是否弹窗打印(默认fals)
177
- copies?: number;// 打印份数(默认为1)
163
+ printer?: string; // 打印机名称
164
+ pdf: string; // 文件路径
165
+ pages?: string; // 打印页面范围
166
+ subset?: Subset; // 子集
167
+ orientation?: OrientationRequested;
168
+ scale?: Scaling; // 缩放
169
+ monochrome?: Chromaticity; // 色彩打印
170
+ side?: Sides; //双面打印
171
+ bin?: MediaTray; // 墨盒类型
172
+ paperSize?: MediaSizeName; // 打印纸张
173
+ printDialog?: boolean; // 是否弹窗打印(默认fals)
174
+ copies?: number; // 打印份数(默认为1)
178
175
  }